Index: hash.c =================================================================== RCS file: /cvs/gnome/gnome-xml/hash.c,v retrieving revision 1.19 diff -u -r1.19 hash.c --- hash.c 18 Mar 2002 19:37:03 -0000 1.19 +++ hash.c 10 Jun 2002 17:28:37 -0000 @@ -64,22 +64,19 @@ char ch; if (name != NULL) { - value += 30 * (*name); + value += (unsigned long)*name; while ((ch = *name++) != 0) { - /* value *= 31; */ - value += (unsigned long)ch; + value = value ^ ((value << 5) + (value >> 3) + (unsigned long)ch); } } if (name2 != NULL) { while ((ch = *name2++) != 0) { - /* value *= 31; */ - value += (unsigned long)ch; + value = value ^ ((value << 5) + (value >> 3) + (unsigned long)ch); } } if (name3 != NULL) { while ((ch = *name3++) != 0) { - /* value *= 31; */ - value += (unsigned long)ch; + value = value ^ ((value << 5) + (value >> 3) + (unsigned long)ch); } } return (value % table->size);