void __cdecl __FrameUnwindToEmptyState( EHRegistrationNode *pRN, DispatcherContext *pDC, FuncInfo *pFuncInfo ) { __ehstate_t stateFromControlPC; TryBlockMapEntry *pEntry; EHRegistrationNode EstablisherFramePointers, *pEstablisher; pEstablisher = _GetEstablisherFrame(pRN, pDC, pFuncInfo, &EstablisherFramePointers); stateFromControlPC = __StateFromControlPc(pFuncInfo, pDC); pEntry = _CatchTryBlock(pFuncInfo, stateFromControlPC); __FrameUnwindToState(pEstablisher, pDC, pFuncInfo, pEntry == nullptr ? EH_EMPTY_STATE : TBME_HIGH(*pEntry)); }
static FRAMEINFO *_ExecutionInCatch( DispatcherContext *pDC ) { FRAMEINFO *pFrameInfo; int dummy; pFrameInfo = _FindFrameInfo(pDC->ControlPc, NULL); if (pFrameInfo == NULL) { return NULL; } if (pFrameInfo->pEstablisherFrame != _GetEstablisherFrame(pDC, &dummy)) { return NULL; } return pFrameInfo; }