Avoid TLS lookup in IoCManager.Resolve<T>(ref T) if instance provided.

This commit is contained in:
Pieter-Jan Briers
2022-05-23 23:33:01 +02:00
parent 36b0d38b70
commit 8b8e499615

View File

@@ -203,9 +203,9 @@ namespace Robust.Shared.IoC
[MethodImpl(MethodImplOptions.AggressiveOptimization | MethodImplOptions.AggressiveInlining)]
public static void Resolve<T>([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<T>()!;
}
/// <inheritdoc cref="Resolve{T}(ref T?)"/>