mirror of
https://github.com/lua/lua
synced 2024-11-22 12:51:30 +03:00
new hash function; hash value for strings are kept with the string
This commit is contained in:
parent
fbfa1cbe9b
commit
10bdd83844
4
tree.c
4
tree.c
@ -3,7 +3,7 @@
|
|||||||
** TecCGraf - PUC-Rio
|
** TecCGraf - PUC-Rio
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char *rcs_tree="$Id: tree.c,v 1.9 1994/11/18 19:27:38 roberto Exp roberto $";
|
char *rcs_tree="$Id: tree.c,v 1.10 1994/11/23 14:31:11 roberto Stab roberto $";
|
||||||
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -37,6 +37,7 @@ static TreeNode *tree_create (TreeNode **node, char *str)
|
|||||||
(*node)->left = (*node)->right = NULL;
|
(*node)->left = (*node)->right = NULL;
|
||||||
strcpy((*node)->ts.str, str);
|
strcpy((*node)->ts.str, str);
|
||||||
(*node)->ts.marked = 0;
|
(*node)->ts.marked = 0;
|
||||||
|
(*node)->ts.hash = 0;
|
||||||
(*node)->varindex = (*node)->constindex = NOT_USED;
|
(*node)->varindex = (*node)->constindex = NOT_USED;
|
||||||
return *node;
|
return *node;
|
||||||
}
|
}
|
||||||
@ -59,6 +60,7 @@ TaggedString *lua_createstring (char *str)
|
|||||||
lua_pack();
|
lua_pack();
|
||||||
newString = (StringNode *)luaI_malloc(sizeof(StringNode)+strlen(str));
|
newString = (StringNode *)luaI_malloc(sizeof(StringNode)+strlen(str));
|
||||||
newString->ts.marked = 0;
|
newString->ts.marked = 0;
|
||||||
|
newString->ts.hash = 0;
|
||||||
strcpy(newString->ts.str, str);
|
strcpy(newString->ts.str, str);
|
||||||
newString->next = string_root;
|
newString->next = string_root;
|
||||||
string_root = newString;
|
string_root = newString;
|
||||||
|
3
tree.h
3
tree.h
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
** tree.h
|
** tree.h
|
||||||
** TecCGraf - PUC-Rio
|
** TecCGraf - PUC-Rio
|
||||||
** $Id: tree.h,v 1.5 1994/11/18 19:27:38 roberto Exp roberto $
|
** $Id: tree.h,v 1.6 1994/11/23 14:31:11 roberto Stab roberto $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef tree_h
|
#ifndef tree_h
|
||||||
@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
typedef struct TaggedString
|
typedef struct TaggedString
|
||||||
{
|
{
|
||||||
|
unsigned long hash; /* 0 if not initialized */
|
||||||
char marked; /* for garbage collection */
|
char marked; /* for garbage collection */
|
||||||
char str[1]; /* \0 byte already reserved */
|
char str[1]; /* \0 byte already reserved */
|
||||||
} TaggedString;
|
} TaggedString;
|
||||||
|
Loading…
Reference in New Issue
Block a user