From 8b8e49961526a59a656b744cbd47f516c1223f7b Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Mon, 23 May 2022 23:33:01 +0200 Subject: [PATCH] Avoid TLS lookup in IoCManager.Resolve(ref T) if instance provided. --- Robust.Shared/IoC/IoCManager.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Robust.Shared/IoC/IoCManager.cs b/Robust.Shared/IoC/IoCManager.cs index 6a3ded8fa..17aa48078 100644 --- a/Robust.Shared/IoC/IoCManager.cs +++ b/Robust.Shared/IoC/IoCManager.cs @@ -203,9 +203,9 @@ namespace Robust.Shared.IoC [MethodImpl(MethodImplOptions.AggressiveOptimization | MethodImplOptions.AggressiveInlining)] public static void Resolve([NotNull] ref T? instance) { - DebugTools.Assert(_container.IsValueCreated, NoContextAssert); - - _container.Value!.Resolve(ref instance); + // Do not call into IDependencyCollection immediately for this, + // avoids thread local lookup if instance is already given. + instance ??= Resolve()!; } ///