From 101df105c3b94860d76b100dea1308a3ff371b11 Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Tue, 20 Mar 2018 03:34:35 -0700 Subject: [PATCH] Move EncodingTable and CodePageDataItem to System.Text namespace (#17061) This is the more logical namespace for it and it matches the namespace that these live under in CoreRT. --- src/mscorlib/System.Private.CoreLib.csproj | 10 ++++++---- src/mscorlib/src/System/String.Comparison.cs | 5 ----- .../CodePageDataItem.Unix.cs} | 2 +- .../EncodingDataItem.cs => Text/CodePageDataItem.cs} | 2 +- .../src/System/{Globalization => Text}/EncodingTable.Unix.cs | 3 ++- .../src/System/{Globalization => Text}/EncodingTable.cs | 12 +++++++++--- src/vm/ecalllist.h | 4 ++-- 7 files changed, 21 insertions(+), 17 deletions(-) rename src/mscorlib/src/System/{Globalization/EncodingDataItem.Unix.cs => Text/CodePageDataItem.Unix.cs} (98%) rename src/mscorlib/src/System/{Globalization/EncodingDataItem.cs => Text/CodePageDataItem.cs} (99%) rename src/mscorlib/src/System/{Globalization => Text}/EncodingTable.Unix.cs (99%) rename src/mscorlib/src/System/{Globalization => Text}/EncodingTable.cs (94%) diff --git a/src/mscorlib/System.Private.CoreLib.csproj b/src/mscorlib/System.Private.CoreLib.csproj index 79b36c3..038f09f 100644 --- a/src/mscorlib/System.Private.CoreLib.csproj +++ b/src/mscorlib/System.Private.CoreLib.csproj @@ -460,8 +460,12 @@ - - + + + + + + @@ -588,8 +592,6 @@ - - diff --git a/src/mscorlib/src/System/String.Comparison.cs b/src/mscorlib/src/System/String.Comparison.cs index b85af82..14aa4b7 100644 --- a/src/mscorlib/src/System/String.Comparison.cs +++ b/src/mscorlib/src/System/String.Comparison.cs @@ -65,11 +65,6 @@ namespace System [MethodImplAttribute(MethodImplOptions.InternalCall)] internal static extern int CompareOrdinalHelper(String strA, int indexA, int countA, String strB, int indexB, int countB); - //This will not work in case-insensitive mode for any character greater than 0x7F. - //We'll throw an ArgumentException. - [MethodImplAttribute(MethodImplOptions.InternalCall)] - internal static extern unsafe int nativeCompareOrdinalIgnoreCaseWC(String strA, sbyte* strBBytes); - // // // NATIVE INSTANCE METHODS diff --git a/src/mscorlib/src/System/Globalization/EncodingDataItem.Unix.cs b/src/mscorlib/src/System/Text/CodePageDataItem.Unix.cs similarity index 98% rename from src/mscorlib/src/System/Globalization/EncodingDataItem.Unix.cs rename to src/mscorlib/src/System/Text/CodePageDataItem.Unix.cs index ccf9993..249457f 100644 --- a/src/mscorlib/src/System/Globalization/EncodingDataItem.Unix.cs +++ b/src/mscorlib/src/System/Text/CodePageDataItem.Unix.cs @@ -2,7 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. -namespace System.Globalization +namespace System.Text { internal class CodePageDataItem { diff --git a/src/mscorlib/src/System/Globalization/EncodingDataItem.cs b/src/mscorlib/src/System/Text/CodePageDataItem.cs similarity index 99% rename from src/mscorlib/src/System/Globalization/EncodingDataItem.cs rename to src/mscorlib/src/System/Text/CodePageDataItem.cs index 4151859..6c7171a 100644 --- a/src/mscorlib/src/System/Globalization/EncodingDataItem.cs +++ b/src/mscorlib/src/System/Text/CodePageDataItem.cs @@ -6,7 +6,7 @@ using System.Text; using System; using System.Security; -namespace System.Globalization +namespace System.Text { // // Data item for EncodingTable. Along with EncodingTable, they are used by diff --git a/src/mscorlib/src/System/Globalization/EncodingTable.Unix.cs b/src/mscorlib/src/System/Text/EncodingTable.Unix.cs similarity index 99% rename from src/mscorlib/src/System/Globalization/EncodingTable.Unix.cs rename to src/mscorlib/src/System/Text/EncodingTable.Unix.cs index f9671cc..dda6d84 100644 --- a/src/mscorlib/src/System/Globalization/EncodingTable.Unix.cs +++ b/src/mscorlib/src/System/Text/EncodingTable.Unix.cs @@ -4,9 +4,10 @@ using System.Collections.Generic; using System.Diagnostics; +using System.Globalization; using System.Text; -namespace System.Globalization +namespace System.Text { internal static class EncodingTable { diff --git a/src/mscorlib/src/System/Globalization/EncodingTable.cs b/src/mscorlib/src/System/Text/EncodingTable.cs similarity index 94% rename from src/mscorlib/src/System/Globalization/EncodingTable.cs rename to src/mscorlib/src/System/Text/EncodingTable.cs index d09b057..ab9fbc0 100644 --- a/src/mscorlib/src/System/Globalization/EncodingTable.cs +++ b/src/mscorlib/src/System/Text/EncodingTable.cs @@ -6,13 +6,14 @@ using System; using System.Text; using System.Collections; using System.Collections.Generic; +using System.Globalization; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Threading; -namespace System.Globalization +namespace System.Text { // // Data table for encoding classes. Used by System.Text.Encoding. @@ -63,7 +64,7 @@ namespace System.Globalization { index = ((right - left) / 2) + left; - result = String.nativeCompareOrdinalIgnoreCaseWC(name, encodingDataPtr[index].webName); + result = nativeCompareOrdinalIgnoreCaseWC(name, encodingDataPtr[index].webName); if (result == 0) { @@ -85,7 +86,7 @@ namespace System.Globalization //Walk the remaining elements (it'll be 3 or fewer). for (; left <= right; left++) { - if (String.nativeCompareOrdinalIgnoreCaseWC(name, encodingDataPtr[left].webName) == 0) + if (nativeCompareOrdinalIgnoreCaseWC(name, encodingDataPtr[left].webName) == 0) { return (encodingDataPtr[left].codePage); } @@ -212,6 +213,11 @@ namespace System.Globalization [MethodImplAttribute(MethodImplOptions.InternalCall)] private static extern unsafe InternalCodePageDataItem* GetCodePageData(); + + //This will not work in case-insensitive mode for any character greater than 0x7F. + //We'll throw an ArgumentException. + [MethodImplAttribute(MethodImplOptions.InternalCall)] + private static extern unsafe int nativeCompareOrdinalIgnoreCaseWC(String strA, sbyte* strBBytes); } /*=================================InternalEncodingDataItem========================== diff --git a/src/vm/ecalllist.h b/src/vm/ecalllist.h index f14a5a2..7e96bc7 100644 --- a/src/vm/ecalllist.h +++ b/src/vm/ecalllist.h @@ -107,7 +107,6 @@ FCFuncStart(gStringFuncs) FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_PtrSByt_Int_Int_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::CtorSBytePtrStartLengthManaged) FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_PtrSByt_Int_Int_Encoding_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::CtorSBytePtrStartLengthEncodingManaged) FCFuncElement("IsFastSort", COMString::IsFastSort) - FCFuncElement("nativeCompareOrdinalIgnoreCaseWC", COMString::FCCompareOrdinalIgnoreCaseWC) FCIntrinsic("get_Length", COMString::Length, CORINFO_INTRINSIC_StringLength) FCIntrinsic("get_Chars", COMString::GetCharAt, CORINFO_INTRINSIC_StringGetChar) FCFuncElement("IsAscii", COMString::IsAscii) @@ -798,6 +797,7 @@ FCFuncStart(gEncodingTableFuncs) FCFuncElement("GetNumEncodingItems", COMNlsInfo::nativeGetNumEncodingItems) FCFuncElement("GetEncodingData", COMNlsInfo::nativeGetEncodingTableDataPointer) FCFuncElement("GetCodePageData", COMNlsInfo::nativeGetCodePageTableDataPointer) + FCFuncElement("nativeCompareOrdinalIgnoreCaseWC", COMString::FCCompareOrdinalIgnoreCaseWC) FCFuncEnd() #endif // !defined(FEATURE_COREFX_GLOBALIZATION) @@ -1290,7 +1290,7 @@ FCClassElement("DefaultBinder", "System", gCOMDefaultBinderFuncs) FCClassElement("Delegate", "System", gDelegateFuncs) FCClassElement("DependentHandle", "System.Runtime.CompilerServices", gDependentHandleFuncs) #if !defined(FEATURE_COREFX_GLOBALIZATION) -FCClassElement("EncodingTable", "System.Globalization", gEncodingTableFuncs) +FCClassElement("EncodingTable", "System.Text", gEncodingTableFuncs) #endif // !defined(FEATURE_COREFX_GLOBALIZATION) FCClassElement("Enum", "System", gEnumFuncs) FCClassElement("Environment", "System", gEnvironmentFuncs) -- 2.7.4