last = XPT_GetAddrForOffset(new_cursor);
last = XPT_GetAddrForOffset(new_cursor, new_cursor->offset);
XPT_CheckForRepeat(XPTCursor *cursor, void **addrp, XPTPool pool, int len,                   XPTCursor *new_cursor, PRBool *already){    void *last = *addrp;    *already = PR_FALSE;    new_cursor->state = cursor->state;    new_cursor->pool = pool;    new_cursor->bits = 0;    if (cursor->state->mode == XPT_DECODE) {        last = XPT_GetAddrForOffset(new_cursor);        if (last) {            *already = PR_TRUE;            *addrp = last;        }    } else {        new_cursor->offset = XPT_GetOffsetForAddr(new_cursor, last);        if (new_cursor->offset) {            *already = PR_TRUE;            return PR_TRUE;        }        /* haven't already found it, so allocate room for it. */        if (!XPT_MakeCursor(cursor->state, pool, len, new_cursor) ||            !XPT_SetOffsetForAddr(new_cursor, *addrp, new_cursor->offset))            return PR_FALSE;    }    return PR_TRUE;}