From 5a0956e6fc27a22d03d28ee23c195edb2342ab77 Mon Sep 17 00:00:00 2001 From: Theodore Tsirpanis Date: Mon, 3 Feb 2025 03:05:45 +0200 Subject: [PATCH] Remove one usage of `Unsafe.AsPointer`. --- .../src/System/Reflection/TypeNameResolver.Mono.cs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/mono/System.Private.CoreLib/src/System/Reflection/TypeNameResolver.Mono.cs b/src/mono/System.Private.CoreLib/src/System/Reflection/TypeNameResolver.Mono.cs index ef5d63ec28074d..9825299577c395 100644 --- a/src/mono/System.Private.CoreLib/src/System/Reflection/TypeNameResolver.Mono.cs +++ b/src/mono/System.Private.CoreLib/src/System/Reflection/TypeNameResolver.Mono.cs @@ -18,7 +18,7 @@ internal unsafe ref partial struct TypeNameResolver private Func? _typeResolver; private bool _throwOnError; private bool _ignoreCase; - private void* _stackMark; + private ref StackCrawlMark _stackMark; [RequiresUnreferencedCode("The type might be removed")] internal static Type? GetType( @@ -52,7 +52,7 @@ internal unsafe ref partial struct TypeNameResolver _typeResolver = typeResolver, _throwOnError = throwOnError, _ignoreCase = ignoreCase, - _stackMark = Unsafe.AsPointer(ref stackMark) + _stackMark = ref stackMark }.Resolve(parsed); } @@ -69,11 +69,9 @@ internal unsafe ref partial struct TypeNameResolver } else { - ref StackCrawlMark stackMark = ref Unsafe.AsRef(_stackMark); - if (_throwOnError) { - assembly = Assembly.Load(name, ref stackMark, null); + assembly = Assembly.Load(name, ref _stackMark, null); } else { @@ -81,7 +79,7 @@ internal unsafe ref partial struct TypeNameResolver // Other exceptions like BadImangeFormatException should still fly. try { - assembly = Assembly.Load(name, ref stackMark, null); + assembly = Assembly.Load(name, ref _stackMark, null); } catch (FileNotFoundException) { @@ -123,9 +121,7 @@ internal unsafe ref partial struct TypeNameResolver { if (assembly is null) { - ref StackCrawlMark stackMark = ref Unsafe.AsRef(_stackMark); - - type = RuntimeType.GetType(escapedTypeName, _throwOnError, _ignoreCase, ref stackMark); + type = RuntimeType.GetType(escapedTypeName, _throwOnError, _ignoreCase, ref _stackMark); } else {