1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 20:12:21 +02:00

CeFunctionInfo ref counting fix

This commit is contained in:
Brian Fiete 2022-01-04 09:38:02 -05:00
parent ae2c12d974
commit db6cfcf211

View file

@ -6455,6 +6455,8 @@ bool CeContext::Execute(CeFunction* startFunction, uint8* startStackPtr, uint8*
if (moduleMethodInstance) if (moduleMethodInstance)
{ {
auto ceFunction = mCeMachine->QueueMethod(moduleMethodInstance.mMethodInstance, moduleMethodInstance.mFunc); auto ceFunction = mCeMachine->QueueMethod(moduleMethodInstance.mMethodInstance, moduleMethodInstance.mFunc);
ceFunction->mCeFunctionInfo->mRefCount++;
mCeMachine->DerefMethodInfo(callEntry.mFunctionInfo);
callEntry.mFunctionInfo = ceFunction->mCeFunctionInfo; callEntry.mFunctionInfo = ceFunction->mCeFunctionInfo;
} }
} }
@ -8209,7 +8211,7 @@ BfMethodInstance* CeMachine::GetMethodInstance(int64 methodHandle)
} }
CeFunction* CeMachine::QueueMethod(BfMethodInstance* methodInstance, BfIRValue func) CeFunction* CeMachine::QueueMethod(BfMethodInstance* methodInstance, BfIRValue func)
{ {
if (mPreparingFunction != NULL) if (mPreparingFunction != NULL)
{ {
auto curOwner = mPreparingFunction->mMethodInstance->GetOwner(); auto curOwner = mPreparingFunction->mMethodInstance->GetOwner();