XPT_ERROR_HANDLE(a);
error_2: if (ann && XPT_ANN_IS_PRIVATE(ann->flags)) { PR_FREEIF(ann->creator); PR_FREEIF(ann->private_data); } XPT_ERROR_HANDLE(ann);
XPT_DoAnnotation(XPTCursor *cursor, XPTAnnotation **ap){    XPTMode mode = cursor->state->mode;    XPTAnnotation *a;        if (mode == XPT_DECODE)        a = PR_NEWZAP(XPTAnnotation);    else        a = *ap;        if (!XPT_DoAnnotationPrefix(cursor, &a->prefix)) {        goto error;    }        if (a->prefix.tag == PRIVATE_ANNOTATION) {        if (!XPT_DoPrivateAnnotation(cursor, &a->private)) {            goto error;        }    }        return PR_TRUE;    XPT_ERROR_HANDLE(a);}