From: Jan Kotas Date: Tue, 2 May 2017 03:10:26 +0000 (-0700) Subject: Partial revert "Move a few more files to shared CoreLib partition" (dotnet/coreclr... X-Git-Tag: submit/tizen/20210909.063632~11030^2~7054 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=58e82a94a55d3a3aeb1fc1e8ff24601e88036333;p=platform%2Fupstream%2Fdotnet%2Fruntime.git Partial revert "Move a few more files to shared CoreLib partition" (dotnet/coreclr#11328) Revert change from Hashtable to Dictionary Commit migrated from https://github.com/dotnet/coreclr/commit/9501a3b59923bf9c1fea780dc97a342692a8c2ea --- diff --git a/src/coreclr/src/mscorlib/System.Private.CoreLib.csproj b/src/coreclr/src/mscorlib/System.Private.CoreLib.csproj index a7fb42b..161134d 100644 --- a/src/coreclr/src/mscorlib/System.Private.CoreLib.csproj +++ b/src/coreclr/src/mscorlib/System.Private.CoreLib.csproj @@ -634,6 +634,7 @@ + diff --git a/src/coreclr/src/mscorlib/shared/System.Private.CoreLib.Shared.projitems b/src/coreclr/src/mscorlib/shared/System.Private.CoreLib.Shared.projitems index 00d0796..df66f1b 100644 --- a/src/coreclr/src/mscorlib/shared/System.Private.CoreLib.Shared.projitems +++ b/src/coreclr/src/mscorlib/shared/System.Private.CoreLib.Shared.projitems @@ -258,7 +258,6 @@ - diff --git a/src/coreclr/src/mscorlib/shared/System/Resources/ResourceSet.cs b/src/coreclr/src/mscorlib/src/System/Resources/ResourceSet.cs similarity index 82% rename from src/coreclr/src/mscorlib/shared/System/Resources/ResourceSet.cs rename to src/coreclr/src/mscorlib/src/System/Resources/ResourceSet.cs index 18b9c1b..9efff0d 100644 --- a/src/coreclr/src/mscorlib/shared/System/Resources/ResourceSet.cs +++ b/src/coreclr/src/mscorlib/src/System/Resources/ResourceSet.cs @@ -35,11 +35,10 @@ namespace System.Resources [Serializable] public class ResourceSet : IDisposable, IEnumerable { - [NonSerialized] - protected IResourceReader Reader; + [NonSerialized] protected IResourceReader Reader; + internal Hashtable Table; - private Dictionary _table; - private Dictionary _caseInsensitiveTable; // For case-insensitive lookups. + private Hashtable _caseInsensitiveTable; // For case-insensitive lookups. protected ResourceSet() { @@ -88,7 +87,7 @@ namespace System.Resources private void CommonInit() { - _table = new Dictionary(); + Table = new Hashtable(); } // Closes and releases any resources used by this ResourceSet, if any. @@ -112,7 +111,7 @@ namespace System.Resources } Reader = null; _caseInsensitiveTable = null; - _table = null; + Table = null; } public void Dispose() @@ -149,7 +148,7 @@ namespace System.Resources private IDictionaryEnumerator GetEnumeratorHelper() { - Dictionary copyOfTable = _table; // Avoid a race with Dispose + Hashtable copyOfTable = Table; // Avoid a race with Dispose if (copyOfTable == null) throw new ObjectDisposedException(null, SR.ObjectDisposed_ResourceSet); return copyOfTable.GetEnumerator(); @@ -227,7 +226,7 @@ namespace System.Resources while (en.MoveNext()) { Object value = en.Value; - _table.Add(en.Key, value); + Table.Add(en.Key, value); } // While technically possible to close the Reader here, don't close it // to help with some WinRes lifetime issues. @@ -236,10 +235,10 @@ namespace System.Resources private Object GetObjectInternal(String name) { if (name == null) - throw new ArgumentNullException("name"); + throw new ArgumentNullException(nameof(name)); Contract.EndContractBlock(); - Dictionary copyOfTable = _table; // Avoid a race with Dispose + Hashtable copyOfTable = Table; // Avoid a race with Dispose if (copyOfTable == null) throw new ObjectDisposedException(null, SR.ObjectDisposed_ResourceSet); @@ -249,15 +248,15 @@ namespace System.Resources private Object GetCaseInsensitiveObjectInternal(String name) { - Dictionary copyOfTable = _table; // Avoid a race with Dispose + Hashtable copyOfTable = Table; // Avoid a race with Dispose if (copyOfTable == null) throw new ObjectDisposedException(null, SR.ObjectDisposed_ResourceSet); - Dictionary caseTable = _caseInsensitiveTable; // Avoid a race condition with Close + Hashtable caseTable = _caseInsensitiveTable; // Avoid a race condition with Close if (caseTable == null) { - caseTable = new Dictionary(CaseInsensitiveStringObjectComparer.Instance); + caseTable = new Hashtable(StringComparer.OrdinalIgnoreCase); IDictionaryEnumerator en = copyOfTable.GetEnumerator(); while (en.MoveNext()) @@ -269,25 +268,5 @@ namespace System.Resources return caseTable[name]; } - - /// - /// Adapter for StringComparer.OrdinalIgnoreCase to allow it to be used with Dictionary - /// - private class CaseInsensitiveStringObjectComparer : IEqualityComparer - { - public static CaseInsensitiveStringObjectComparer Instance { get; } = new CaseInsensitiveStringObjectComparer(); - - private CaseInsensitiveStringObjectComparer() { } - - public new bool Equals(object x, object y) - { - return ((IEqualityComparer)StringComparer.OrdinalIgnoreCase).Equals(x, y); - } - - public int GetHashCode(object obj) - { - return ((IEqualityComparer)StringComparer.OrdinalIgnoreCase).GetHashCode(obj); - } - } } }