Răsfoiți Sursa

Fixed delegate object access check

Brian Fiete 10 luni în urmă
părinte
comite
c58dcb90df
1 a modificat fișierele cu 2 adăugiri și 2 ștergeri
  1. 2 2
      IDEHelper/Compiler/BfModule.cpp

+ 2 - 2
IDEHelper/Compiler/BfModule.cpp

@@ -16786,11 +16786,11 @@ void BfModule::CreateDelegateInvokeMethod()
 		{
 			numVal = mBfIRBuilder->CreatePtrToInt(fieldVal, BfTypeCode_UInt64);
 			auto andVal = mBfIRBuilder->CreateAnd(numVal, mBfIRBuilder->CreateConst(BfTypeCode_UInt64, ~0x8000000000000000ULL));
-			fieldVal = andVal;
+			fieldVal = mBfIRBuilder->CreateIntToPtr(andVal, mBfIRBuilder->MapType(mContext->mBfObjectType));
 		}
 
 		if ((WantsObjectAccessCheck(mContext->mBfObjectType) && (mCompiler->mSystem->mPtrSize == 8)))
-		{			
+		{
 			auto oacDoBB = mBfIRBuilder->CreateBlock("oac.do", true);
 			auto oacDoneBB = mBfIRBuilder->CreateBlock("oac.done");