Beispiel #1
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 );
}
Beispiel #2
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 );
}
Beispiel #3
0
static void callBackEnd(        // CALL-BACK: end of condition block
    void* data )                // - COND_STK entry
{
    COND_STK* cond = data;      // - COND_STK entry
    SE* posn;                   // - current position

    _Dump( cond, "CallBack(END)" );
    posn = FstabCurrPosn();
#if 0
    if( posn == cond->posn_true
     && posn == cond->posn_false ) {
        cond->mask_set = 0;
        cond->mask_clr = NOT_BITARR_MASK( 0 );
        BlkPosnTempBegSet( posn );
    } else {
#else
    {
#endif
        SE* test = FstabTestFlag( cond->offset
                                , cond->posn_last
                                , posn );
        FstabAdd( test );
        BlkPosnTempBegSet( test );
    }
    callBackFini( cond );
}


static void callBackNewCtorBeg( // CALL-BACK: start of new ctor
    void* data )                // - COND_STK entry
{
    COND_STK* cond = data;      // - COND_STK entry
    SE* posn;                   // - current position
    SE* se;                     // - new test_flag entry

    posn = callBackCurrent( cond );
    DbgVerify( NULL != posn, "callBackNewCtorBeg -- no delete SE" );
    se = FstabTestFlag( cond->offset, posn, FstabPrevious( posn ) );
    cond->posn_true = se;
    FstabAdd( se );
    BlkPosnTempBegSet( se );
}