diff options
author | Stephen Toub <stoub@microsoft.com> | 2019-01-17 18:10:48 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-17 18:10:48 -0500 |
commit | b9788c29e3787b45e2a5c02c28ede5946621957f (patch) | |
tree | f1a7ad0cfe5ed3474f2818d461cc21fae0d4341d | |
parent | db08a628a85b18352b9e8ae3dc9315c17325ab84 (diff) | |
download | coreclr-b9788c29e3787b45e2a5c02c28ede5946621957f.tar.gz coreclr-b9788c29e3787b45e2a5c02c28ede5946621957f.tar.bz2 coreclr-b9788c29e3787b45e2a5c02c28ede5946621957f.zip |
Remove ToString from RuntimeAssembly.GetManifestResourceStream (#22012)
* Remove ToString from RuntimeAssembly.GetManifestResourceStream
A small allocation we can avoid with the span-based string.Concat.
* Address PR feedback
-rw-r--r-- | src/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs | 7 | ||||
-rw-r--r-- | src/System.Private.CoreLib/src/System/Resources/ManifestBasedResourceGroveler.cs | 7 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs b/src/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs index 45d73a65bf..3035117b9e 100644 --- a/src/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs +++ b/src/System.Private.CoreLib/src/System/Reflection/RuntimeAssembly.cs @@ -207,8 +207,11 @@ namespace System.Reflection throw new ArgumentNullException(nameof(type)); string nameSpace = type?.Namespace; - string delimiter = (nameSpace != null && name != null) ? Type.Delimiter.ToString() : null; - string resourceName = string.Concat(nameSpace, delimiter, name); + + char c = Type.Delimiter; + string resourceName = nameSpace != null && name != null ? + string.Concat(nameSpace, new ReadOnlySpan<char>(ref c, 1), name) : + string.Concat(nameSpace, name); return GetManifestResourceStream(resourceName); } diff --git a/src/System.Private.CoreLib/src/System/Resources/ManifestBasedResourceGroveler.cs b/src/System.Private.CoreLib/src/System/Resources/ManifestBasedResourceGroveler.cs index fe95bf1c8f..42b601336a 100644 --- a/src/System.Private.CoreLib/src/System/Resources/ManifestBasedResourceGroveler.cs +++ b/src/System.Private.CoreLib/src/System/Resources/ManifestBasedResourceGroveler.cs @@ -330,8 +330,11 @@ namespace System.Resources Debug.Assert(name != null, "name shouldn't be null; check caller"); string nameSpace = _mediator.LocationInfo?.Namespace; - string delimiter = (nameSpace != null && name != null) ? Type.Delimiter.ToString() : null; - string resourceName = string.Concat(nameSpace, delimiter, name); + + char c = Type.Delimiter; + string resourceName = nameSpace != null && name != null ? + string.Concat(nameSpace, new ReadOnlySpan<char>(ref c, 1), name) : + string.Concat(nameSpace, name); string canonicalName = null; foreach (string existingName in satellite.GetManifestResourceNames()) |