[Mono-dev] String.GetHashCode on Mac

David Suarez listasdavid at codicesoftware.com
Mon Dec 1 09:25:46 EST 2008


Hi,

I've run into a problem with the String.GetHashCode method in macosx 
(10.5.3, intel). The point is I get the same hashcode for very different 
strings, apparently only taking into account the last 7 chars of the 
string. This happens with mono 2.0 installer.

Consider this test case:

using System;

namespace hashtest
{
    class Class2
    {
         private static string[] testStrings2 = new string[]
        {
            "something to worry about",
            "ing to worry about",
            "to worry about",
            "orry about",
            "y about",
            " about"
        };

        [STAThread]
        static void Main(string[] args)
        {
            foreach (string s in testStrings2) PrintHash(s, 
s.GetHashCode());
        }

        private static void PrintHash(string str, int hash)
        {
            Console.WriteLine("  hash [{1}] line: [{0}]", str,
              hash.ToString("X8"));
        }
    }
}

Running on mac, I get this result:

  hash [9DA57994] line: [something to worry about]
  hash [9DA57994] line: [ing to worry about]
  hash [9DA57994] line: [to worry about]
  hash [9DA57994] line: [orry about]
  hash [9DA57994] line: [y about]
  hash [1DA57994] line: [ about]

It seems to me that the String.GetHashCode in String.cs is not getting 
called, because this method works fine (I tested separately). Is this 
happening to anybody else? Any clue on what code is being called on the 
mac for getting the hash code of strings?

Thanks,

David

Is this happening to anybody else??



More information about the Mono-devel-list mailing list