if (mode == XPT_DECODE) a = PR_NEWZAP(XPTAnnotation); else a = *ap;  if (!XPT_DoAnnotationPrefix(cursor, &a->prefix)) { goto error;
fprintf(stderr, "DoAnnotation\n"); if (mode == XPT_DECODE) { ann = PR_NEWZAP(XPTAnnotation); if (!ann) return PR_FALSE; *annp = ann; } else { ann = *annp;
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);}