diff --git a/mcs/class/corlib/System/ChangeLog b/mcs/class/corlib/System/ChangeLog index 42211afb5821f..4a9ee5cd5b8ba 100644 --- a/mcs/class/corlib/System/ChangeLog +++ b/mcs/class/corlib/System/ChangeLog @@ -1,3 +1,10 @@ +2009-10-07 Sebastien Pouliot + + * String.cs: Remove unsafe code duplication in ToCharArray. + Define out the unused InternalStrcpy icalls + * StringComparer.cs: Seal internal/private inner classes. + [Backport r143651] + 2009-10-06 Sebastien Pouliot * Decimal.cs: Use Compare method instead of directly using the diff --git a/mcs/class/corlib/System/String.cs b/mcs/class/corlib/System/String.cs index 05efca83a0baa..7fe8828ce7758 100644 --- a/mcs/class/corlib/System/String.cs +++ b/mcs/class/corlib/System/String.cs @@ -184,12 +184,9 @@ public unsafe void CopyTo (int sourceIndex, char[] destination, int destinationI CharCopy (dest + destinationIndex, src + sourceIndex, count); } - public unsafe char[] ToCharArray () + public char[] ToCharArray () { - char[] tmp = new char [length]; - fixed (char* dest = tmp, src = this) - CharCopy (dest, src, length); - return tmp; + return ToCharArray (0, length); } public unsafe char[] ToCharArray (int startIndex, int length) @@ -3077,7 +3074,7 @@ internal static unsafe void CharCopyReverse (String target, int targetIndex, Str [MethodImplAttribute (MethodImplOptions.InternalCall)] internal extern static String InternalAllocateStr (int length); - +#if false [MethodImplAttribute (MethodImplOptions.InternalCall)] internal extern static void InternalStrcpy (String dest, int destPos, String src); @@ -3089,7 +3086,7 @@ internal static unsafe void CharCopyReverse (String target, int targetIndex, Str [MethodImplAttribute (MethodImplOptions.InternalCall)] internal extern static void InternalStrcpy (String dest, int destPos, char[] chars, int sPos, int count); - +#endif [MethodImplAttribute (MethodImplOptions.InternalCall)] private extern static string InternalIntern (string str); diff --git a/mcs/class/corlib/System/StringComparer.cs b/mcs/class/corlib/System/StringComparer.cs index 84f76b190443e..54be9eda647cb 100644 --- a/mcs/class/corlib/System/StringComparer.cs +++ b/mcs/class/corlib/System/StringComparer.cs @@ -145,7 +145,7 @@ public int GetHashCode (object obj) } [Serializable] - class CultureAwareComparer : StringComparer + sealed class CultureAwareComparer : StringComparer { readonly bool _ignoreCase; readonly CompareInfo _compareInfo; @@ -180,7 +180,7 @@ public override int GetHashCode (string s) } [Serializable] - internal class OrdinalComparer : StringComparer + internal sealed class OrdinalComparer : StringComparer { readonly bool _ignoreCase;