Ejemplo n.º 1
0
static void setTempStart(       // CALL BACK: SET START OF TEMP CTORING
    void* data )                // - state entry
{
    temp_entry* te = (temp_entry*)data;

    te->start = FstabActualPosn();
}
Ejemplo n.º 2
0
static void callBackNewCtorEnd( // CALL-BACK: end of new ctor
    void* data )                // - COND_STK entry
{
    COND_STK* cond = data;      // - COND_STK entry

    _Dump( cond, "CallBack(END-NEW_CTOR)" );
    if( cond->posn_true == FstabActualPosn() ) {
        FstabRemove();
        cond->mask_set = 0;
        cond->mask_clr = NOT_BITARR_MASK( 0 );
    }
    callBackFini( cond );
};
Ejemplo n.º 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 );
}
Ejemplo n.º 4
0
static void callBackCtorFlag(   // CALL-BACK FOR CTOR-FLAG AFTER CTORING
    void* data )                // - patch entry
{
    CTOR_FLAG_SET* cfs = data;  // - patch entry

    if( ctorTestReqd( FstabActualPosn(), cfs->se ) ) {
        FN_CTL* fctl = FnCtlTop();
        unsigned mask = 1 << ( FnCtlCondFlagCtor( fctl ) & 7 );
        BEPatchInteger( cfs->ph_clr, 255 - mask );
    } else {
        BEPatchInteger( cfs->ph_clr, -1 );
    }
    BEFiniPatch( cfs->ph_clr );
    CarveFree( carve_ctor_flag, cfs );
}
Ejemplo n.º 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();
    }
}