Esempio n. 1
0
static void callBackNewCtorBeg( // CALL-BACK: START CTOR OF NEW OBJECT
    void *data )                // - patch entry
{
    patch_entry* pe = data;     // - patch entry

    _peDump( pe, "CallBack: cgCallBackNewAlloc" );
    PstkPush( &stack_new_ctors, pe->se );
    FstabAdd( pe->se );
    patchSE( pe );
}
Esempio n. 2
0
static void setSeCtorTest(      // CALL BACK: SET SE AND CTOR-TEST
    void* data )                // - state entry
{
    SE* se = (SE*)data;

    se = BlkPosnUpdate( se );
    se = BlkPosnTempEndSet( se );
    FstabAdd( se );
    FstabCtorTest( FnCtlTop() );
}
Esempio n. 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 );
}
Esempio n. 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 );
}
Esempio n. 5
0
static void setTempDone(        // CALL BACK: SET END OF TEMP CTORING
    void* data )                // - state entry
{
    temp_entry* te = (temp_entry*)data;

//  FstabSetSvSe( te->start );
    FstabAdd( te->se );
    FstabMarkedPosnSet( te->se );
    if( te->patch != NULL ) {
        STATE_VAR state_var = SeStateOptimal( te->se );
        BEPatchInteger( te->patch, state_var );
        BEFiniPatch( te->patch );
    }
    BlkPosnTempBegSet( te->se );
    CarveFree( carve_temp_entry, te );
}