From 371f649fbade9a4429409b8b94925239f425e26d Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Wed, 8 Apr 2020 09:13:18 -0700 Subject: [PATCH] Fixed GCMarkMembers 'this' argument casting --- IDEHelper/Compiler/BfModule.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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); }