/* union object_pointer switch (boolean b) { case TRUE: object_data data; case FALSE: void nothing; } */
bool_t xdr_pointer(XDR *xdrs, char **objpp, unsigned int obj_size, xdrproc_t xdr_obj)
/* union object_pointer switch (boolean b) { case TRUE: object_data data; case FALSE: void nothing; } */
bool_t xdr_pointer(XDR *xdrs, char **objpp, unsigned int obj_size, xdrproc_t xdr_obj)
{
    bool_t more_data;
    more_data = (*objpp != NULL);
    if (!xdr_bool(xdrs, &more_data)) {
        return (FALSE);
    }
    if (!more_data) {
        *objpp = NULL;
        return (TRUE);
    }
    return (xdr_reference(xdrs, objpp, obj_size, xdr_obj));
}