* path.cc (hash_path_name): Replace hash algorithm with SDBM.

This commit is contained in:
Corinna Vinschen 2004-04-08 12:21:15 +00:00
parent a9a5b2eab0
commit 6eee18ea6e
2 changed files with 7 additions and 3 deletions

View File

@ -1,4 +1,8 @@
2004-04-07 Corinna Vinschen <corinna@vinschen.de> 2004-04-08 Corinna Vinschen <corinna@vinschen.de>
* path.cc (hash_path_name): Replace hash algorithm with SDBM.
2004-04-08 Corinna Vinschen <corinna@vinschen.de>
* fhandler.cc (fhandler_base::open): Set query access mode according * fhandler.cc (fhandler_base::open): Set query access mode according
to query_open setting. to query_open setting.

View File

@ -3262,7 +3262,7 @@ hash_path_name (__ino64_t hash, const char *name)
hash = cygheap->cwd.get_hash (); hash = cygheap->cwd.get_hash ();
if (name[0] == '.' && name[1] == '\0') if (name[0] == '.' && name[1] == '\0')
return hash; return hash;
hash = (hash << 5) - hash + '\\'; hash = '\\' + (hash << 6) + (hash << 16) - hash;
} }
} }
@ -3272,7 +3272,7 @@ hashit:
do do
{ {
int ch = cyg_tolower (*name); int ch = cyg_tolower (*name);
hash = (hash << 5) - hash + ch; hash = ch + (hash << 6) + (hash << 16) - hash;
} }
while (*++name != '\0' && while (*++name != '\0' &&
!(*name == '\\' && (!name[1] || (name[1] == '.' && !name[2])))); !(*name == '\\' && (!name[1] || (name[1] == '.' && !name[2]))));