XPTMode mode = cursor->state->mode; XPTTypeDescriptorPrefix *tdp; uintn scratch;  if (mode == XPT_DECODE) tdp = PR_NEWZAP(XPTTypeDescriptorPrefix); else tdp = *tdpp;  if (!XPT_DO_BITS(&cursor, tdp->is_pointer, 1, scratch) || !XPT_DO_BITS(&cursor, tdp->is_unique_pointer, 1, scratch) || !XPT_DO_BITS(&cursor, tdp->is_reference, 1, scratch) || !XPT_DO_BITS(&cursor, tdp->tag, 5, scratch)) {  goto error; }  return PR_TRUE;  XPT_ERROR_HANDLE(tdp);
return XPT_Do8(cursor, &tdp->flags);
XPT_DoTypeDescriptorPrefix(XPTCursor *cursor, XPTTypeDescriptorPrefix **tdpp){    XPTMode mode = cursor->state->mode;    XPTTypeDescriptorPrefix *tdp;    uintn scratch;        if (mode == XPT_DECODE)        tdp = PR_NEWZAP(XPTTypeDescriptorPrefix);    else        tdp = *tdpp;        if (!XPT_DO_BITS(&cursor, tdp->is_pointer, 1, scratch) ||        !XPT_DO_BITS(&cursor, tdp->is_unique_pointer, 1, scratch) ||        !XPT_DO_BITS(&cursor, tdp->is_reference, 1, scratch) ||        !XPT_DO_BITS(&cursor, tdp->tag, 5, scratch)) {         goto error;    }        return PR_TRUE;    XPT_ERROR_HANDLE(tdp);    }