result->precedingStateTop = stateStackTop;
result->precedingStateTop = (REint32)stateStackTop;
REBackTrackData *pushBackTrackState(REGlobalData *gData, REOp op,                                     REuint8 *target, REMatchState *x){    REBackTrackData *result;    if (backTrackStackTop == maxBackTrack) {        maxBackTrack <<= 1;        backTrackStack = (REBackTrackData *)realloc(backTrackStack,                                 sizeof(REBackTrackData) * maxBackTrack);        if (!backTrackStack) {            reportRegExpError(&gData->error, RE_OUT_OF_MEMORY);            return NULL;        }    }    result = &backTrackStack[backTrackStackTop++];    result->continuation.op = op;    result->continuation.pc = target;    result->state = copyState(x);    result->lastParen = gData->lastParen;    result->precedingStateTop = stateStackTop;    if (stateStackTop) {        result->precedingState = (REProgState *)malloc(sizeof(REProgState)                                                         * stateStackTop);        if (!result->precedingState) {            reportRegExpError(&gData->error, RE_OUT_OF_MEMORY);            return NULL;        }        memcpy(result->precedingState, stateStack, sizeof(REProgState)                                                          * stateStackTop);    }    else        result->precedingState = NULL;    return result;}