diff options
Diffstat (limited to 'table.c')
| -rw-r--r-- | table.c | 7 |
1 files changed, 4 insertions, 3 deletions
| @@ -3,7 +3,7 @@ | |||
| 3 | ** Module to control static tables | 3 | ** Module to control static tables |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| 6 | char *rcs_table="$Id: table.c,v 2.42 1996/01/23 18:39:45 roberto Exp roberto $"; | 6 | char *rcs_table="$Id: table.c,v 2.43 1996/01/26 14:04:32 roberto Exp roberto $"; |
| 7 | 7 | ||
| 8 | /*#include <string.h>*/ | 8 | /*#include <string.h>*/ |
| 9 | 9 | ||
| @@ -101,6 +101,7 @@ Word luaI_findsymbol (TreeNode *t) | |||
| 101 | lua_table = growvector(lua_table, lua_maxsymbol, Symbol); | 101 | lua_table = growvector(lua_table, lua_maxsymbol, Symbol); |
| 102 | } | 102 | } |
| 103 | t->varindex = lua_ntable; | 103 | t->varindex = lua_ntable; |
| 104 | lua_table[lua_ntable].varname = t; | ||
| 104 | s_tag(lua_ntable) = LUA_T_NIL; | 105 | s_tag(lua_ntable) = LUA_T_NIL; |
| 105 | lua_ntable++; | 106 | lua_ntable++; |
| 106 | } | 107 | } |
| @@ -155,7 +156,7 @@ static char *lua_travsymbol (int (*fn)(Object *)) | |||
| 155 | Word i; | 156 | Word i; |
| 156 | for (i=0; i<lua_ntable; i++) | 157 | for (i=0; i<lua_ntable; i++) |
| 157 | if (fn(&s_object(i))) | 158 | if (fn(&s_object(i))) |
| 158 | return luaI_nodebysymbol(i)->ts.str; | 159 | return lua_table[i].varname->ts.str; |
| 159 | return NULL; | 160 | return NULL; |
| 160 | } | 161 | } |
| 161 | 162 | ||
| @@ -234,7 +235,7 @@ static void lua_nextvar (void) | |||
| 234 | } | 235 | } |
| 235 | else | 236 | else |
| 236 | { | 237 | { |
| 237 | TreeNode *t = luaI_nodebysymbol(next); | 238 | TreeNode *t = lua_table[next].varname; |
| 238 | Object name; | 239 | Object name; |
| 239 | tag(&name) = LUA_T_STRING; | 240 | tag(&name) = LUA_T_STRING; |
| 240 | tsvalue(&name) = &(t->ts); | 241 | tsvalue(&name) = &(t->ts); |
