static SE* callBackCurrent( // SET UP CURRENT POSITION COND_STK* info ) // - top entry { SE* posn; // - current position posn = FstabCurrPosn(); info->posn_last = posn; return( posn ); }
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 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 ); }