if (td->prefix.tag == TD_INTERFACE_TYPE) {
if (XPT_TDP_TAG(td->prefix) == TD_INTERFACE_TYPE) {
XPT_DoTypeDescriptor(XPTCursor *cursor, XPTTypeDescriptor **tdp){    XPTMode mode = cursor->state->mode;    XPTTypeDescriptor *td;        if (mode == XPT_DECODE)        td = PR_NEWZAP(XPTTypeDescriptor);    else        td = *tdp;        if (!XPT_DoTypeDescriptorPrefix(cursor, &td->prefix)) {        goto error;    }        if (td->prefix.tag == TD_INTERFACE_TYPE) {        if (!XPT_Do32(cursor, &td->type.interface))            goto error;    } else {        if (td->prefix.tag == TD_INTERFACE_IS_TYPE) {            if (!XPT_Do8(cursor, &td->type.argnum))                goto error;        }    }       return PR_TRUE;        XPT_ERROR_HANDLE(td);    }