From 6d16e281fc3c9c2288e0e011859f95558ff35987 Mon Sep 17 00:00:00 2001 From: Rainer Sigwald Date: Fri, 31 Mar 2023 11:35:20 -0500 Subject: [PATCH] Move EncodingUtilities to Framework This will single-instance it for improved performance. --- .../Microsoft.Build.Engine.OM.UnitTests.csproj | 3 --- src/Build/Microsoft.Build.csproj | 3 --- src/{Shared => Framework}/EncodingUtilities.cs | 10 ++++++---- src/Tasks/Microsoft.Build.Tasks.csproj | 3 --- src/Utilities/Microsoft.Build.Utilities.csproj | 3 --- 5 files changed, 6 insertions(+), 16 deletions(-) rename src/{Shared => Framework}/EncodingUtilities.cs (97%) diff --git a/src/Build.OM.UnitTests/Microsoft.Build.Engine.OM.UnitTests.csproj b/src/Build.OM.UnitTests/Microsoft.Build.Engine.OM.UnitTests.csproj index 14c83442af4..1dcc2fb9fc2 100644 --- a/src/Build.OM.UnitTests/Microsoft.Build.Engine.OM.UnitTests.csproj +++ b/src/Build.OM.UnitTests/Microsoft.Build.Engine.OM.UnitTests.csproj @@ -35,9 +35,6 @@ EncodingStringWriter.cs - - EncodingUtilities.cs - true diff --git a/src/Build/Microsoft.Build.csproj b/src/Build/Microsoft.Build.csproj index f81f0ac23fa..5525799a483 100644 --- a/src/Build/Microsoft.Build.csproj +++ b/src/Build/Microsoft.Build.csproj @@ -56,9 +56,6 @@ - - SharedUtilities\EncodingUtilities.cs - SharedUtilities\EnvironmentUtilities.cs diff --git a/src/Shared/EncodingUtilities.cs b/src/Framework/EncodingUtilities.cs similarity index 97% rename from src/Shared/EncodingUtilities.cs rename to src/Framework/EncodingUtilities.cs index b7d1813f368..9ad987bd730 100644 --- a/src/Shared/EncodingUtilities.cs +++ b/src/Framework/EncodingUtilities.cs @@ -7,6 +7,8 @@ using System.Linq; using System.Text; +using Microsoft.Build.Framework; + #nullable disable namespace Microsoft.Build.Shared @@ -48,17 +50,17 @@ internal static Encoding CurrentSystemOemEncoding try { - if (NativeMethodsShared.IsWindows) + if (NativeMethods.IsWindows) { #if RUNTIME_TYPE_NETCORE Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); #endif // get the current OEM code page - s_currentOemEncoding = Encoding.GetEncoding(NativeMethodsShared.GetOEMCP()); + s_currentOemEncoding = Encoding.GetEncoding(NativeMethods.GetOEMCP()); } } // theoretically, GetEncoding may throw an ArgumentException or a NotSupportedException. This should never - // really happen, since the code page we pass in has just been returned from the "underlying platform", + // really happen, since the code page we pass in has just been returned from the "underlying platform", // so it really should support it. If it ever happens, we'll just fall back to the default encoding. // No point in showing any errors to the users, since they most likely wouldn't be actionable. catch (ArgumentException ex) @@ -214,7 +216,7 @@ internal static bool CanEncodeString(int codePage, string stringToEncode) /// internal static Encoding BatchFileEncoding(string contents, string encodingSpecification) { - if (!NativeMethodsShared.IsWindows) + if (!NativeMethods.IsWindows) { return EncodingUtilities.Utf8WithoutBom; } diff --git a/src/Tasks/Microsoft.Build.Tasks.csproj b/src/Tasks/Microsoft.Build.Tasks.csproj index 63d564f81e6..a7ab39b6a7e 100644 --- a/src/Tasks/Microsoft.Build.Tasks.csproj +++ b/src/Tasks/Microsoft.Build.Tasks.csproj @@ -150,9 +150,6 @@ true - - true - true diff --git a/src/Utilities/Microsoft.Build.Utilities.csproj b/src/Utilities/Microsoft.Build.Utilities.csproj index 64fa68b16e5..d06b02ad782 100644 --- a/src/Utilities/Microsoft.Build.Utilities.csproj +++ b/src/Utilities/Microsoft.Build.Utilities.csproj @@ -72,9 +72,6 @@ Shared\CopyOnWriteDictionary.cs - - Shared\EncodingUtilities.cs - Shared\ErrorUtilities.cs