Sfoglia il codice sorgente

new hash function; hash value for strings are kept with the string

Roberto Ierusalimschy 31 anni fa
parent
commit
10bdd83844
2 ha cambiato i file con 5 aggiunte e 2 eliminazioni
  1. 3 1
      tree.c
  2. 2 1
      tree.h

+ 3 - 1
tree.c

@@ -3,7 +3,7 @@
 ** 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>
@@ -37,6 +37,7 @@ static TreeNode *tree_create (TreeNode **node, char *str)
   (*node)->left = (*node)->right = NULL;
   strcpy((*node)->ts.str, str);
   (*node)->ts.marked = 0;
+  (*node)->ts.hash = 0;
   (*node)->varindex = (*node)->constindex = NOT_USED;
   return *node;
  }
@@ -59,6 +60,7 @@ TaggedString *lua_createstring (char *str)
   lua_pack();
   newString = (StringNode *)luaI_malloc(sizeof(StringNode)+strlen(str));
   newString->ts.marked = 0;
+  newString->ts.hash = 0;
   strcpy(newString->ts.str, str);
   newString->next = string_root;
   string_root = newString;

+ 2 - 1
tree.h

@@ -1,7 +1,7 @@
 /*
 ** tree.h
 ** 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
@@ -13,6 +13,7 @@
 
 typedef struct TaggedString
 {
+  unsigned long hash;  /* 0 if not initialized */
   char marked;   /* for garbage collection */
   char str[1];   /* \0 byte already reserved */
 } TaggedString;