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