diff --git a/IDEHelper/Compiler/BfModule.cpp b/IDEHelper/Compiler/BfModule.cpp index 4ad38d0c..31ea4a21 100644 --- a/IDEHelper/Compiler/BfModule.cpp +++ b/IDEHelper/Compiler/BfModule.cpp @@ -14984,8 +14984,11 @@ void BfModule::EmitGCMarkValue(BfTypedValue markVal, BfModuleMethodInstance mark if (markMemberMethodInstance) { SizedArray args; - //(1, markVal.mValue); - //exprEvaluator.PushArg(markVal, args); + + auto methodOwner = markMemberMethodInstance.mMethodInstance->GetOwner(); + if (markVal.mType != methodOwner) + markVal = Cast(NULL, markVal, methodOwner); + exprEvaluator.PushThis(NULL, markVal, markMemberMethodInstance.mMethodInstance, args); exprEvaluator.CreateCall(markMemberMethodInstance.mMethodInstance, markMemberMethodInstance.mFunc, false, args); }