diff options
-rw-r--r-- | lstring.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lstring.c,v 1.12 1998/03/06 16:54:42 roberto Exp roberto $ | 2 | ** $Id: lstring.c,v 1.13 1998/06/19 16:14:09 roberto Exp roberto $ |
3 | ** String table (keeps all strings handled by Lua) | 3 | ** String table (keeps all strings handled by Lua) |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -39,9 +39,9 @@ void luaS_init (void) | |||
39 | 39 | ||
40 | static unsigned long hash_s (char *s, long l) | 40 | static unsigned long hash_s (char *s, long l) |
41 | { | 41 | { |
42 | unsigned long h = 0; | 42 | unsigned long h = 0; /* seed */ |
43 | while (l--) | 43 | while (l--) |
44 | h = ((h<<5)-h)^(unsigned char)*(s++); | 44 | h = h ^ ((h<<5)+(h>>2)+(unsigned char)*(s++)); |
45 | return h; | 45 | return h; |
46 | } | 46 | } |
47 | 47 | ||