if (!XPT_DoParamDescriptor(&cursor, &md->result))
if (!XPT_DoParamDescriptor(cursor, md->result))
XPT_DoMethodDescriptor(XPTCursor *cursor, XPTMethodDescriptor **mdp){    XPTMode mode = cursor->state->mode;    XPTMethodDescriptor *md;    uintn scratch;    int i;    if (mode == XPT_DECODE)        md = PR_NEWZAP(XPTMethodDescriptor);    else        md = *mdp;    if (!XPT_DO_BITS(&cursor, md->is_getter, 1, scratch) ||        !XPT_DO_BITS(&cursor, md->is_setter, 1, scratch) ||        !XPT_DO_BITS(&cursor, md->is_varargs, 1, scratch) ||        !XPT_DO_BITS(&cursor, md->is_constructor, 1, scratch) ||        !XPT_DO_BITS(&cursor, md->is_hidden, 1, scratch) ||        !XPT_DO_BITS(&cursor, md->reserved, 3, scratch) ||        !XPT_DoCString(&cursor, &md->name) ||        !XPT_Do8(cursor, &md->num_args)) {              goto error;    }    if (mode == XPT_DECODE)        (uint8)md->num_args = PR_CALLOC(md->num_args * (int)sizeof(XPTParamDescriptor));        for(i = 0; i < md->num_args; i++) {        if (!XPT_DoParamDescriptor(&cursor, &md->params))            goto error;    }        if (!XPT_DoParamDescriptor(&cursor, &md->result))        goto error;        return PR_TRUE;        XPT_ERROR_HANDLE(md);    }