diff --git a/IDEHelper/Compiler/CeMachine.cpp b/IDEHelper/Compiler/CeMachine.cpp index eb7bca98..5c0d1b5d 100644 --- a/IDEHelper/Compiler/CeMachine.cpp +++ b/IDEHelper/Compiler/CeMachine.cpp @@ -8647,7 +8647,10 @@ bool CeContext::Execute(CeFunction* startFunction, uint8* startStackPtr, uint8* _Fail("Empty virtual table"); return false; } - auto methodInstance = (BfMethodInstance*)valueType->mVirtualMethodTable[virtualIdx].mImplementingMethod; + auto& methodRef = valueType->mVirtualMethodTable[virtualIdx].mImplementingMethod; + if (methodRef.mTypeInstance->mDefineState < BfTypeDefineState_DefinedAndMethodsSlotted) + ceModule->PopulateType(methodRef.mTypeInstance, BfPopulateType_DataAndMethods); + auto methodInstance = (BfMethodInstance*)methodRef; auto callFunction = mCeMachine->GetPreparedFunction(methodInstance); if (needsFunctionIds)