From: Jan Vorlicek Date: Sun, 5 Jan 2020 15:14:40 +0000 (+0100) Subject: Fix DelayLoadHelper kind for delegate ctors and IsInstanceOf (#1302) X-Git-Tag: submit/tizen/20210909.063632~10568 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a751093cec8534667e281bf19204590cd2baf564;p=platform%2Fupstream%2Fdotnet%2Fruntime.git Fix DelayLoadHelper kind for delegate ctors and IsInstanceOf (#1302) Crossgen2 was incorrectly setting the DelayLoadHelper kind to DelayLoad_Helper instead of DelayLoad_Helper_Obj and DelayLoad_Helper_ObjObj. This was causing GC holes. --- diff --git a/src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRunSymbolNodeFactory.cs b/src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRunSymbolNodeFactory.cs index f449d69..3725ab7 100644 --- a/src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRunSymbolNodeFactory.cs +++ b/src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRunSymbolNodeFactory.cs @@ -109,7 +109,7 @@ namespace ILCompiler.DependencyAnalysis return new DelayLoadHelperImport( _codegenNodeFactory, _codegenNodeFactory.HelperImports, - ReadyToRunHelper.DelayLoad_Helper, + ReadyToRunHelper.DelayLoad_Helper_ObjObj, new DelegateCtorSignature(ctorKey.Type, targetMethodNode, ctorKey.Method.Token, signatureContext)); }); @@ -327,7 +327,7 @@ namespace ILCompiler.DependencyAnalysis return new DelayLoadHelperImport( _codegenNodeFactory, _codegenNodeFactory.HelperImports, - ReadyToRunHelper.DelayLoad_Helper, + ReadyToRunHelper.DelayLoad_Helper_Obj, _codegenNodeFactory.TypeSignature(ReadyToRunFixupKind.IsInstanceOf, type, signatureContext)); }