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 ); }
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() ); }
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 ); }
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 ); }
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 ); }