Пример #1
0
static void callBackFalse(      // CALL-BACK: start of false block
    void* data )                // - COND_STK entry
{
    COND_STK* info = data;      // - COND_STK entry
    SE* posn;                   // - last position

    posn = info->posn_last;
    info->posn_false = callBackCurrent( info );
    FstabSetSvSe( posn );
    _Dump( info, "CallBack(false)" );
}
Пример #2
0
static void patchForDtorDelEnd( // CALL-BACK: patch state for DTOR-DEL (end)
    void* data )                // - patch entry
{
    patch_entry* pe = data;     // - patching entry
    SE* prev;                   // - previous position

    _peDump( pe, "CallBack: patchForDtorDelEnd" );
    DbgVerify( pe->se != NULL, "patchForDtorDelEnd -- ordering" );
    prev = FstabPrevious( pe->se );
    pe->se = prev;
    FstabSetSvSe( prev );
    patchSE( pe );
}
Пример #3
0
static void callBackNewCtorEnd( // CALL-BACK: END CTOR OF NEW OBJECT
    void *data )                // - patch entry
{
    patch_entry* pe = data;     // - patch entry
    SE* posn;                   // - current position

    posn = FstabActualPosn();
    if( posn == pe->se ) {
        posn = FstabPrevious( posn );
    }
    pe->se = posn;
    patchSE( pe );
    FstabSetSvSe( posn );
}
Пример #4
0
static void patchForDtorDelBeg( // CALL-BACK: patch state for DTOR-DEL (start)
    void* data )                // - patch entry
{
    patch_entry* pe = data;     // - patching entry
#if 0
    SE* marked;                 // - current marked position

    marked = FstabMarkedPosn();
    if( marked != FstabCurrPosn() ) {
        FstabSetSvSe( marked );
    }
#endif
    _peDump( pe, "CallBack: patchForDtorDelBeg" );
    FstabAdd( pe->se );
    patchSE( pe );
}
Пример #5
0
static void checkCtorTest(      // ELIMINATE CTOR-TEST IF POSSIBLE
    void* data )                // - state entry
{
    SE* se = data;
    SE* test = FstabActualPosn();
#ifndef NDEBUG
    if( PragDbgToggle.dump_stab ) {
        printf( "CallBack: checkCtorTest: se[%x] test[%x]\n"
              , se
              , test );
    }
#endif
    if( ctorTestReqd( test, se ) ) {
        // intervening state entries
        FstabSetSvSe( se );
    } else {
        // no intervening state entries
        FstabRemove();
    }
}