aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>1997-03-11 15:44:28 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>1997-03-11 15:44:28 -0300
commitb6d91e24e23edfe98ad732660fd456e91658edb9 (patch)
treea66fb8348758f32df6c5d5ab1af1aece2a63009f
parenta82ab0852eaca43cb56be5134833c97e6bb7ac98 (diff)
downloadlua-b6d91e24e23edfe98ad732660fd456e91658edb9.tar.gz
lua-b6d91e24e23edfe98ad732660fd456e91658edb9.tar.bz2
lua-b6d91e24e23edfe98ad732660fd456e91658edb9.zip
"tag" changed to "ttype" (since now tag has other meaning)
-rw-r--r--fallback.c14
-rw-r--r--func.c4
-rw-r--r--hash.c29
-rw-r--r--inout.c6
-rw-r--r--opcode.c149
-rw-r--r--opcode.h8
-rw-r--r--table.c25
7 files changed, 119 insertions, 116 deletions
diff --git a/fallback.c b/fallback.c
index 3100ec31..b0bf8fae 100644
--- a/fallback.c
+++ b/fallback.c
@@ -3,7 +3,7 @@
3** TecCGraf - PUC-Rio 3** TecCGraf - PUC-Rio
4*/ 4*/
5 5
6char *rcs_fallback="$Id: fallback.c,v 1.25 1996/04/25 14:10:00 roberto Exp roberto $"; 6char *rcs_fallback="$Id: fallback.c,v 1.26 1997/02/26 17:38:41 roberto Unstable roberto $";
7 7
8#include <stdio.h> 8#include <stdio.h>
9#include <string.h> 9#include <string.h>
@@ -132,7 +132,7 @@ int luaI_ref (Object *object, int lock)
132{ 132{
133 int i; 133 int i;
134 int oldSize; 134 int oldSize;
135 if (tag(object) == LUA_T_NIL) 135 if (ttype(object) == LUA_T_NIL)
136 return -1; /* special ref for nil */ 136 return -1; /* special ref for nil */
137 for (i=0; i<refSize; i++) 137 for (i=0; i<refSize; i++)
138 if (refArray[i].status == FREE) 138 if (refArray[i].status == FREE)
@@ -223,7 +223,7 @@ int lua_newtag (char *t)
223 else 223 else
224 lua_error("invalid type for new tag"); 224 lua_error("invalid type for new tag");
225 for (i=0; i<FB_N; i++) 225 for (i=0; i<FB_N; i++)
226 luaI_IMtable[last_tag-BASE_TAG].int_method[i].tag = LUA_T_NIL; 226 luaI_IMtable[last_tag-BASE_TAG].int_method[i].ttype = LUA_T_NIL;
227 return last_tag; 227 return last_tag;
228} 228}
229 229
@@ -241,9 +241,9 @@ static void checktag (int tag)
241void luaI_settag (int tag, Object *o) 241void luaI_settag (int tag, Object *o)
242{ 242{
243 checktag(tag); 243 checktag(tag);
244 if (tag(o) != luaI_IMtable[tag-BASE_TAG].tp) 244 if (ttype(o) != luaI_IMtable[tag-BASE_TAG].tp)
245 lua_error("Tag is not compatible with this type"); 245 lua_error("Tag is not compatible with this type");
246 if (o->tag == LUA_T_ARRAY) 246 if (o->ttype == LUA_T_ARRAY)
247 o->value.a->htag = tag; 247 o->value.a->htag = tag;
248 else /* must be userdata */ 248 else /* must be userdata */
249 o->value.ts->tag = tag; 249 o->value.ts->tag = tag;
@@ -251,7 +251,7 @@ void luaI_settag (int tag, Object *o)
251 251
252int luaI_tag (Object *o) 252int luaI_tag (Object *o)
253{ 253{
254 lua_Type t = tag(o); 254 lua_Type t = ttype(o);
255 if (t == LUA_T_USERDATA) 255 if (t == LUA_T_USERDATA)
256 return o->value.ts->tag; 256 return o->value.ts->tag;
257 else if (t == LUA_T_ARRAY) 257 else if (t == LUA_T_ARRAY)
@@ -265,7 +265,7 @@ Object *luaI_getim (int tag, int event)
265 return &luaI_fallBacks[event].function; 265 return &luaI_fallBacks[event].function;
266 else if (validtag(tag)) { 266 else if (validtag(tag)) {
267 Object *func = &luaI_IMtable[tag-BASE_TAG].int_method[event]; 267 Object *func = &luaI_IMtable[tag-BASE_TAG].int_method[event];
268 if (func->tag == LUA_T_NIL) 268 if (func->ttype == LUA_T_NIL)
269 return NULL; 269 return NULL;
270 else 270 else
271 return func; 271 return func;
diff --git a/func.c b/func.c
index 0e15c2fc..61cd614a 100644
--- a/func.c
+++ b/func.c
@@ -84,12 +84,12 @@ Long luaI_funccollector (void)
84void lua_funcinfo (lua_Object func, char **filename, int *linedefined) 84void lua_funcinfo (lua_Object func, char **filename, int *linedefined)
85{ 85{
86 Object *f = luaI_Address(func); 86 Object *f = luaI_Address(func);
87 if (f->tag == LUA_T_MARK || f->tag == LUA_T_FUNCTION) 87 if (f->ttype == LUA_T_MARK || f->ttype == LUA_T_FUNCTION)
88 { 88 {
89 *filename = f->value.tf->fileName; 89 *filename = f->value.tf->fileName;
90 *linedefined = f->value.tf->lineDefined; 90 *linedefined = f->value.tf->lineDefined;
91 } 91 }
92 else if (f->tag == LUA_T_CMARK || f->tag == LUA_T_CFUNCTION) 92 else if (f->ttype == LUA_T_CMARK || f->ttype == LUA_T_CFUNCTION)
93 { 93 {
94 *filename = "(C)"; 94 *filename = "(C)";
95 *linedefined = -1; 95 *linedefined = -1;
diff --git a/hash.c b/hash.c
index 3ed5065d..430eb73b 100644
--- a/hash.c
+++ b/hash.c
@@ -3,7 +3,7 @@
3** hash manager for lua 3** hash manager for lua
4*/ 4*/
5 5
6char *rcs_hash="$Id: hash.c,v 2.33 1997/02/11 11:35:05 roberto Exp roberto $"; 6char *rcs_hash="$Id: hash.c,v 2.34 1997/02/26 17:38:41 roberto Unstable roberto $";
7 7
8 8
9#include "mem.h" 9#include "mem.h"
@@ -51,7 +51,7 @@ int luaI_redimension (int nhash)
51static int hashindex (Hash *t, Object *ref) /* hash function */ 51static int hashindex (Hash *t, Object *ref) /* hash function */
52{ 52{
53 long int h; 53 long int h;
54 switch (tag(ref)) { 54 switch (ttype(ref)) {
55 case LUA_T_NUMBER: 55 case LUA_T_NUMBER:
56 h = (long int)nvalue(ref); break; 56 h = (long int)nvalue(ref); break;
57 case LUA_T_STRING: case LUA_T_USERDATA: 57 case LUA_T_STRING: case LUA_T_USERDATA:
@@ -72,8 +72,8 @@ static int hashindex (Hash *t, Object *ref) /* hash function */
72 72
73int lua_equalObj (Object *t1, Object *t2) 73int lua_equalObj (Object *t1, Object *t2)
74{ 74{
75 if (tag(t1) != tag(t2)) return 0; 75 if (ttype(t1) != ttype(t2)) return 0;
76 switch (tag(t1)) 76 switch (ttype(t1))
77 { 77 {
78 case LUA_T_NIL: return 1; 78 case LUA_T_NIL: return 1;
79 case LUA_T_NUMBER: return nvalue(t1) == nvalue(t2); 79 case LUA_T_NUMBER: return nvalue(t1) == nvalue(t2);
@@ -90,7 +90,7 @@ int lua_equalObj (Object *t1, Object *t2)
90static int present (Hash *t, Object *ref) 90static int present (Hash *t, Object *ref)
91{ 91{
92 int h = hashindex(t, ref); 92 int h = hashindex(t, ref);
93 while (tag(ref(node(t, h))) != LUA_T_NIL) 93 while (ttype(ref(node(t, h))) != LUA_T_NIL)
94 { 94 {
95 if (lua_equalObj(ref, ref(node(t, h)))) 95 if (lua_equalObj(ref, ref(node(t, h))))
96 return h; 96 return h;
@@ -108,7 +108,7 @@ static Node *hashnodecreate (int nhash)
108 int i; 108 int i;
109 Node *v = newvector (nhash, Node); 109 Node *v = newvector (nhash, Node);
110 for (i=0; i<nhash; i++) 110 for (i=0; i<nhash; i++)
111 tag(ref(&v[i])) = LUA_T_NIL; 111 ttype(ref(&v[i])) = LUA_T_NIL;
112 return v; 112 return v;
113} 113}
114 114
@@ -149,7 +149,7 @@ void lua_hashmark (Hash *h)
149 for (i=0; i<nhash(h); i++) 149 for (i=0; i<nhash(h); i++)
150 { 150 {
151 Node *n = node(h,i); 151 Node *n = node(h,i);
152 if (tag(ref(n)) != LUA_T_NIL) 152 if (ttype(ref(n)) != LUA_T_NIL)
153 { 153 {
154 lua_markobject(&n->ref); 154 lua_markobject(&n->ref);
155 lua_markobject(&n->val); 155 lua_markobject(&n->val);
@@ -163,14 +163,14 @@ static void call_fallbacks (void)
163{ 163{
164 Hash *curr_array; 164 Hash *curr_array;
165 Object t; 165 Object t;
166 tag(&t) = LUA_T_ARRAY; 166 ttype(&t) = LUA_T_ARRAY;
167 for (curr_array = listhead; curr_array; curr_array = curr_array->next) 167 for (curr_array = listhead; curr_array; curr_array = curr_array->next)
168 if (markarray(curr_array) != 1) 168 if (markarray(curr_array) != 1)
169 { 169 {
170 avalue(&t) = curr_array; 170 avalue(&t) = curr_array;
171 luaI_gcFB(&t); 171 luaI_gcFB(&t);
172 } 172 }
173 tag(&t) = LUA_T_NIL; 173 ttype(&t) = LUA_T_NIL;
174 luaI_gcFB(&t); /* end of list */ 174 luaI_gcFB(&t); /* end of list */
175} 175}
176 176
@@ -235,7 +235,7 @@ static void rehash (Hash *t)
235 for (i=0; i<nold; i++) 235 for (i=0; i<nold; i++)
236 { 236 {
237 Node *n = vold+i; 237 Node *n = vold+i;
238 if (tag(ref(n)) != LUA_T_NIL && tag(val(n)) != LUA_T_NIL) 238 if (ttype(ref(n)) != LUA_T_NIL && ttype(val(n)) != LUA_T_NIL)
239 *node(t, present(t, ref(n))) = *n; /* copy old node to new hahs */ 239 *node(t, present(t, ref(n))) = *n; /* copy old node to new hahs */
240 } 240 }
241 luaI_free(vold); 241 luaI_free(vold);
@@ -248,7 +248,7 @@ static void rehash (Hash *t)
248Object *lua_hashget (Hash *t, Object *ref) 248Object *lua_hashget (Hash *t, Object *ref)
249{ 249{
250 int h = present(t, ref); 250 int h = present(t, ref);
251 if (tag(ref(node(t, h))) != LUA_T_NIL) return val(node(t, h)); 251 if (ttype(ref(node(t, h))) != LUA_T_NIL) return val(node(t, h));
252 else return NULL; 252 else return NULL;
253} 253}
254 254
@@ -263,7 +263,7 @@ Object *lua_hashdefine (Hash *t, Object *ref)
263 Node *n; 263 Node *n;
264 h = present(t, ref); 264 h = present(t, ref);
265 n = node(t, h); 265 n = node(t, h);
266 if (tag(ref(n)) == LUA_T_NIL) 266 if (ttype(ref(n)) == LUA_T_NIL)
267 { 267 {
268 nuse(t)++; 268 nuse(t)++;
269 if ((float)nuse(t) > (float)nhash(t)*REHASH_LIMIT) 269 if ((float)nuse(t) > (float)nhash(t)*REHASH_LIMIT)
@@ -273,7 +273,7 @@ Object *lua_hashdefine (Hash *t, Object *ref)
273 n = node(t, h); 273 n = node(t, h);
274 } 274 }
275 *ref(n) = *ref; 275 *ref(n) = *ref;
276 tag(val(n)) = LUA_T_NIL; 276 ttype(val(n)) = LUA_T_NIL;
277 } 277 }
278 return (val(n)); 278 return (val(n));
279} 279}
@@ -289,7 +289,8 @@ static void hashnext (Hash *t, int i)
289{ 289{
290 if (i >= nhash(t)) 290 if (i >= nhash(t))
291 return; 291 return;
292 while (tag(ref(node(t,i))) == LUA_T_NIL || tag(val(node(t,i))) == LUA_T_NIL) 292 while (ttype(ref(node(t,i))) == LUA_T_NIL ||
293 ttype(val(node(t,i))) == LUA_T_NIL)
293 { 294 {
294 if (++i >= nhash(t)) 295 if (++i >= nhash(t))
295 return; 296 return;
diff --git a/inout.c b/inout.c
index 7ccd1a58..cfe0e78e 100644
--- a/inout.c
+++ b/inout.c
@@ -5,7 +5,7 @@
5** Also provides some predefined lua functions. 5** Also provides some predefined lua functions.
6*/ 6*/
7 7
8char *rcs_inout="$Id: inout.c,v 2.43 1996/09/25 12:57:22 roberto Exp roberto $"; 8char *rcs_inout="$Id: inout.c,v 2.44 1997/02/26 17:38:41 roberto Unstable roberto $";
9 9
10#include <stdio.h> 10#include <stdio.h>
11#include <string.h> 11#include <string.h>
@@ -368,10 +368,10 @@ void luaI_predefine (void)
368 Word n; 368 Word n;
369 for (i=0; i<INTFUNCSIZE; i++) { 369 for (i=0; i<INTFUNCSIZE; i++) {
370 n = luaI_findsymbolbyname(int_funcs[i].name); 370 n = luaI_findsymbolbyname(int_funcs[i].name);
371 s_tag(n) = LUA_T_CFUNCTION; s_fvalue(n) = int_funcs[i].func; 371 s_ttype(n) = LUA_T_CFUNCTION; s_fvalue(n) = int_funcs[i].func;
372 } 372 }
373 n = luaI_findsymbolbyname("_VERSION_"); 373 n = luaI_findsymbolbyname("_VERSION_");
374 s_tag(n) = LUA_T_STRING; s_tsvalue(n) = lua_createstring(LUA_VERSION); 374 s_ttype(n) = LUA_T_STRING; s_tsvalue(n) = lua_createstring(LUA_VERSION);
375} 375}
376 376
377 377
diff --git a/opcode.c b/opcode.c
index ed8a534e..86fca402 100644
--- a/opcode.c
+++ b/opcode.c
@@ -3,7 +3,7 @@
3** TecCGraf - PUC-Rio 3** TecCGraf - PUC-Rio
4*/ 4*/
5 5
6char *rcs_opcode="$Id: opcode.c,v 3.82 1997/02/26 17:38:41 roberto Unstable roberto $"; 6char *rcs_opcode="$Id: opcode.c,v 3.83 1997/03/06 17:30:55 roberto Exp roberto $";
7 7
8#include <setjmp.h> 8#include <setjmp.h>
9#include <stdio.h> 9#include <stdio.h>
@@ -20,8 +20,8 @@ char *rcs_opcode="$Id: opcode.c,v 3.82 1997/02/26 17:38:41 roberto Unstable robe
20#include "fallback.h" 20#include "fallback.h"
21#include "undump.h" 21#include "undump.h"
22 22
23#define tonumber(o) ((tag(o) != LUA_T_NUMBER) && (lua_tonumber(o) != 0)) 23#define tonumber(o) ((ttype(o) != LUA_T_NUMBER) && (lua_tonumber(o) != 0))
24#define tostring(o) ((tag(o) != LUA_T_STRING) && (lua_tostring(o) != 0)) 24#define tostring(o) ((ttype(o) != LUA_T_STRING) && (lua_tostring(o) != 0))
25 25
26 26
27#define STACK_SIZE 128 27#define STACK_SIZE 128
@@ -138,12 +138,12 @@ static int lua_tonumber (Object *obj)
138{ 138{
139 float t; 139 float t;
140 char c; 140 char c;
141 if (tag(obj) != LUA_T_STRING) 141 if (ttype(obj) != LUA_T_STRING)
142 return 1; 142 return 1;
143 else if (sscanf(svalue(obj), "%f %c",&t, &c) == 1) 143 else if (sscanf(svalue(obj), "%f %c",&t, &c) == 1)
144 { 144 {
145 nvalue(obj) = t; 145 nvalue(obj) = t;
146 tag(obj) = LUA_T_NUMBER; 146 ttype(obj) = LUA_T_NUMBER;
147 return 0; 147 return 0;
148 } 148 }
149 else 149 else
@@ -152,12 +152,12 @@ static int lua_tonumber (Object *obj)
152 152
153 153
154/* 154/*
155** Convert, if possible, to a string tag 155** Convert, if possible, to a string ttype
156** Return 0 in success or not 0 on error. 156** Return 0 in success or not 0 on error.
157*/ 157*/
158static int lua_tostring (Object *obj) 158static int lua_tostring (Object *obj)
159{ 159{
160 if (tag(obj) != LUA_T_NUMBER) 160 if (ttype(obj) != LUA_T_NUMBER)
161 return 1; 161 return 1;
162 else { 162 else {
163 char s[60]; 163 char s[60];
@@ -168,7 +168,7 @@ static int lua_tostring (Object *obj)
168 else 168 else
169 sprintf (s, "%g", nvalue(obj)); 169 sprintf (s, "%g", nvalue(obj));
170 tsvalue(obj) = lua_createstring(s); 170 tsvalue(obj) = lua_createstring(s);
171 tag(obj) = LUA_T_STRING; 171 ttype(obj) = LUA_T_STRING;
172 return 0; 172 return 0;
173 } 173 }
174} 174}
@@ -182,7 +182,7 @@ static void adjust_top (StkId newtop)
182 Object *nt; 182 Object *nt;
183 lua_checkstack(stack+newtop); 183 lua_checkstack(stack+newtop);
184 nt = stack+newtop; /* warning: previous call may change stack */ 184 nt = stack+newtop; /* warning: previous call may change stack */
185 while (top < nt) tag(top++) = LUA_T_NIL; 185 while (top < nt) ttype(top++) = LUA_T_NIL;
186 top = nt; /* top could be bigger than newtop */ 186 top = nt; /* top could be bigger than newtop */
187} 187}
188 188
@@ -289,14 +289,14 @@ static void do_call (StkId base, int nResults)
289 StkId firstResult; 289 StkId firstResult;
290 Object *func = stack+base-1; 290 Object *func = stack+base-1;
291 int i; 291 int i;
292 if (tag(func) == LUA_T_CFUNCTION) 292 if (ttype(func) == LUA_T_CFUNCTION)
293 { 293 {
294 tag(func) = LUA_T_CMARK; 294 ttype(func) = LUA_T_CMARK;
295 firstResult = callC(fvalue(func), base); 295 firstResult = callC(fvalue(func), base);
296 } 296 }
297 else if (tag(func) == LUA_T_FUNCTION) 297 else if (ttype(func) == LUA_T_FUNCTION)
298 { 298 {
299 tag(func) = LUA_T_MARK; 299 ttype(func) = LUA_T_MARK;
300 firstResult = lua_execute(func->value.tf->code, base); 300 firstResult = lua_execute(func->value.tf->code, base);
301 } 301 }
302 else 302 else
@@ -327,9 +327,9 @@ static void pushsubscript (void)
327{ 327{
328 int tg = luaI_tag(top-2); 328 int tg = luaI_tag(top-2);
329 Object *im = luaI_getim(tg, FB_GETTABLE); 329 Object *im = luaI_getim(tg, FB_GETTABLE);
330 if (tag(top-2) == LUA_T_ARRAY && im == NULL) { 330 if (ttype(top-2) == LUA_T_ARRAY && im == NULL) {
331 Object *h = lua_hashget(avalue(top-2), top-1); 331 Object *h = lua_hashget(avalue(top-2), top-1);
332 if (h != NULL && tag(h) != LUA_T_NIL) { 332 if (h != NULL && ttype(h) != LUA_T_NIL) {
333 --top; 333 --top;
334 *(top-1) = *h; 334 *(top-1) = *h;
335 } 335 }
@@ -338,7 +338,7 @@ static void pushsubscript (void)
338 callIM(im, 2, 1); 338 callIM(im, 2, 1);
339 else { 339 else {
340 --top; 340 --top;
341 tag(top-1) = LUA_T_NIL; 341 ttype(top-1) = LUA_T_NIL;
342 } 342 }
343 } 343 }
344 else { /* object is not a table, and/or has a specific "gettable" method */ 344 else { /* object is not a table, and/or has a specific "gettable" method */
@@ -353,7 +353,7 @@ static void pushsubscript (void)
353lua_Object lua_basicindex (void) 353lua_Object lua_basicindex (void)
354{ 354{
355 adjustC(2); 355 adjustC(2);
356 if (tag(top-2) != LUA_T_ARRAY) 356 if (ttype(top-2) != LUA_T_ARRAY)
357 lua_error("indexed expression not a table in basic indexing"); 357 lua_error("indexed expression not a table in basic indexing");
358 else { 358 else {
359 Object *h = lua_hashget(avalue(top-2), top-1); 359 Object *h = lua_hashget(avalue(top-2), top-1);
@@ -361,7 +361,7 @@ lua_Object lua_basicindex (void)
361 if (h != NULL) 361 if (h != NULL)
362 *(top-1) = *h; 362 *(top-1) = *h;
363 else 363 else
364 tag(top-1) = LUA_T_NIL; 364 ttype(top-1) = LUA_T_NIL;
365 } 365 }
366 CLS_current.base++; /* incorporate object in the stack */ 366 CLS_current.base++; /* incorporate object in the stack */
367 return (Ref(top-1)); 367 return (Ref(top-1));
@@ -377,7 +377,7 @@ lua_Object lua_basicindex (void)
377static void storesubscript (Object *t, int mode) 377static void storesubscript (Object *t, int mode)
378{ 378{
379 Object *im = (mode == 0) ? NULL : luaI_getim(luaI_tag(t), FB_SETTABLE); 379 Object *im = (mode == 0) ? NULL : luaI_getim(luaI_tag(t), FB_SETTABLE);
380 if (tag(t) == LUA_T_ARRAY && im == NULL) { 380 if (ttype(t) == LUA_T_ARRAY && im == NULL) {
381 Object *h = lua_hashdefine(avalue(t), t+1); 381 Object *h = lua_hashdefine(avalue(t), t+1);
382 *h = *(top-1); 382 *h = *(top-1);
383 top -= (mode == 2) ? 1 : 3; 383 top -= (mode == 2) ? 1 : 3;
@@ -403,9 +403,9 @@ static void getglobal (Word n)
403{ 403{
404 *top = lua_table[n].object; 404 *top = lua_table[n].object;
405 incr_top; 405 incr_top;
406 if (tag(top-1) == LUA_T_NIL) 406 if (ttype(top-1) == LUA_T_NIL)
407 { /* must call getglobal fallback */ 407 { /* must call getglobal fallback */
408 tag(top-1) = LUA_T_STRING; 408 ttype(top-1) = LUA_T_STRING;
409 tsvalue(top-1) = lua_table[n].varname; 409 tsvalue(top-1) = lua_table[n].varname;
410 callFB(FB_GETGLOBAL); 410 callFB(FB_GETGLOBAL);
411 } 411 }
@@ -452,7 +452,7 @@ lua_Function lua_stackedfunction (int level)
452{ 452{
453 StkId i; 453 StkId i;
454 for (i = (top-1)-stack; i>=0; i--) 454 for (i = (top-1)-stack; i>=0; i--)
455 if (stack[i].tag == LUA_T_MARK || stack[i].tag == LUA_T_CMARK) 455 if (stack[i].ttype == LUA_T_MARK || stack[i].ttype == LUA_T_CMARK)
456 if (level-- == 0) 456 if (level-- == 0)
457 return Ref(stack+i); 457 return Ref(stack+i);
458 return LUA_NOOBJECT; 458 return LUA_NOOBJECT;
@@ -462,7 +462,7 @@ lua_Function lua_stackedfunction (int level)
462int lua_currentline (lua_Function func) 462int lua_currentline (lua_Function func)
463{ 463{
464 Object *f = Address(func); 464 Object *f = Address(func);
465 return (f+1 < top && (f+1)->tag == LUA_T_LINE) ? (f+1)->value.i : -1; 465 return (f+1 < top && (f+1)->ttype == LUA_T_LINE) ? (f+1)->value.i : -1;
466} 466}
467 467
468 468
@@ -512,7 +512,7 @@ static void do_unprotectedrun (lua_CFunction f, int nParams, int nResults)
512{ 512{
513 adjustC(nParams); 513 adjustC(nParams);
514 open_stack((top-stack)-CLS_current.base); 514 open_stack((top-stack)-CLS_current.base);
515 stack[CLS_current.base].tag = LUA_T_CFUNCTION; 515 stack[CLS_current.base].ttype = LUA_T_CFUNCTION;
516 stack[CLS_current.base].value.f = f; 516 stack[CLS_current.base].value.f = f;
517 do_callinc(nResults); 517 do_callinc(nResults);
518} 518}
@@ -546,7 +546,7 @@ int luaI_dorun (TFunc *tf)
546{ 546{
547 int status; 547 int status;
548 adjustC(1); /* one slot for the pseudo-function */ 548 adjustC(1); /* one slot for the pseudo-function */
549 stack[CLS_current.base].tag = LUA_T_FUNCTION; 549 stack[CLS_current.base].ttype = LUA_T_FUNCTION;
550 stack[CLS_current.base].value.tf = tf; 550 stack[CLS_current.base].value.tf = tf;
551 status = do_protectedrun(MULT_RET); 551 status = do_protectedrun(MULT_RET);
552 return status; 552 return status;
@@ -731,7 +731,7 @@ lua_Object lua_createtable (void)
731{ 731{
732 adjustC(0); 732 adjustC(0);
733 avalue(top) = lua_createarray(0); 733 avalue(top) = lua_createarray(0);
734 tag(top) = LUA_T_ARRAY; 734 ttype(top) = LUA_T_ARRAY;
735 incr_top; 735 incr_top;
736 CLS_current.base++; /* incorporate object in the stack */ 736 CLS_current.base++; /* incorporate object in the stack */
737 return Ref(top-1); 737 return Ref(top-1);
@@ -751,17 +751,17 @@ lua_Object lua_getparam (int number)
751 751
752int lua_isnil (lua_Object o) 752int lua_isnil (lua_Object o)
753{ 753{
754 return (o!= LUA_NOOBJECT) && (tag(Address(o)) == LUA_T_NIL); 754 return (o!= LUA_NOOBJECT) && (ttype(Address(o)) == LUA_T_NIL);
755} 755}
756 756
757int lua_istable (lua_Object o) 757int lua_istable (lua_Object o)
758{ 758{
759 return (o!= LUA_NOOBJECT) && (tag(Address(o)) == LUA_T_ARRAY); 759 return (o!= LUA_NOOBJECT) && (ttype(Address(o)) == LUA_T_ARRAY);
760} 760}
761 761
762int lua_isuserdata (lua_Object o) 762int lua_isuserdata (lua_Object o)
763{ 763{
764 return (o!= LUA_NOOBJECT) && (tag(Address(o)) == LUA_T_USERDATA); 764 return (o!= LUA_NOOBJECT) && (ttype(Address(o)) == LUA_T_USERDATA);
765} 765}
766 766
767int lua_iscfunction (lua_Object o) 767int lua_iscfunction (lua_Object o)
@@ -810,14 +810,14 @@ char *lua_getstring (lua_Object object)
810 810
811void *lua_getbinarydata (lua_Object object) 811void *lua_getbinarydata (lua_Object object)
812{ 812{
813 if (object == LUA_NOOBJECT || tag(Address(object)) != LUA_T_USERDATA) 813 if (object == LUA_NOOBJECT || ttype(Address(object)) != LUA_T_USERDATA)
814 lua_error("getbinarydata: object is not binary data"); 814 lua_error("getbinarydata: object is not binary data");
815 return svalue(Address(object)); 815 return svalue(Address(object));
816} 816}
817 817
818int lua_getbindatasize (lua_Object object) 818int lua_getbindatasize (lua_Object object)
819{ 819{
820 if (object == LUA_NOOBJECT || tag(Address(object)) != LUA_T_USERDATA) 820 if (object == LUA_NOOBJECT || ttype(Address(object)) != LUA_T_USERDATA)
821 return 0; 821 return 0;
822 else return (Address(object))->value.ts->size; 822 else return (Address(object))->value.ts->size;
823} 823}
@@ -827,8 +827,8 @@ int lua_getbindatasize (lua_Object object)
827*/ 827*/
828lua_CFunction lua_getcfunction (lua_Object object) 828lua_CFunction lua_getcfunction (lua_Object object)
829{ 829{
830 if (object == LUA_NOOBJECT || ((tag(Address(object)) != LUA_T_CFUNCTION) && 830 if (object == LUA_NOOBJECT || ((ttype(Address(object)) != LUA_T_CFUNCTION) &&
831 (tag(Address(object)) != LUA_T_CMARK))) 831 (ttype(Address(object)) != LUA_T_CMARK)))
832 return NULL; 832 return NULL;
833 else return (fvalue(Address(object))); 833 else return (fvalue(Address(object)));
834} 834}
@@ -889,30 +889,30 @@ void lua_storeglobal (char *name)
889*/ 889*/
890void lua_pushnil (void) 890void lua_pushnil (void)
891{ 891{
892 tag(top) = LUA_T_NIL; 892 ttype(top) = LUA_T_NIL;
893 incr_top; 893 incr_top;
894} 894}
895 895
896/* 896/*
897** Push an object (tag=number) to stack. 897** Push an object (ttype=number) to stack.
898*/ 898*/
899void lua_pushnumber (real n) 899void lua_pushnumber (real n)
900{ 900{
901 tag(top) = LUA_T_NUMBER; nvalue(top) = n; 901 ttype(top) = LUA_T_NUMBER; nvalue(top) = n;
902 incr_top; 902 incr_top;
903} 903}
904 904
905/* 905/*
906** Push an object (tag=string) to stack. 906** Push an object (ttype=string) to stack.
907*/ 907*/
908void lua_pushstring (char *s) 908void lua_pushstring (char *s)
909{ 909{
910 if (s == NULL) 910 if (s == NULL)
911 tag(top) = LUA_T_NIL; 911 ttype(top) = LUA_T_NIL;
912 else 912 else
913 { 913 {
914 tsvalue(top) = lua_createstring(s); 914 tsvalue(top) = lua_createstring(s);
915 tag(top) = LUA_T_STRING; 915 ttype(top) = LUA_T_STRING;
916 } 916 }
917 incr_top; 917 incr_top;
918} 918}
@@ -920,27 +920,27 @@ void lua_pushstring (char *s)
920void lua_pushliteral(char *s) { lua_pushstring(s); }*/ 920void lua_pushliteral(char *s) { lua_pushstring(s); }*/
921 921
922/* 922/*
923** Push an object (tag=cfunction) to stack. 923** Push an object (ttype=cfunction) to stack.
924*/ 924*/
925void lua_pushcfunction (lua_CFunction fn) 925void lua_pushcfunction (lua_CFunction fn)
926{ 926{
927 tag(top) = LUA_T_CFUNCTION; fvalue(top) = fn; 927 ttype(top) = LUA_T_CFUNCTION; fvalue(top) = fn;
928 incr_top; 928 incr_top;
929} 929}
930 930
931void lua_pushbinarydata (void *buff, int size, int tag) 931void lua_pushbinarydata (void *buff, int size, int tag)
932{ 932{
933 if (buff == NULL) 933 if (buff == NULL)
934 tag(top) = LUA_T_NIL; 934 ttype(top) = LUA_T_NIL;
935 else { 935 else {
936 tsvalue(top) = luaI_createuserdata(buff, size, tag); 936 tsvalue(top) = luaI_createuserdata(buff, size, tag);
937 tag(top) = LUA_T_USERDATA; 937 ttype(top) = LUA_T_USERDATA;
938 } 938 }
939 incr_top; 939 incr_top;
940} 940}
941 941
942/* 942/*
943** Push an object (tag=userdata) to stack. 943** Push an object (ttype=userdata) to stack.
944*/ 944*/
945void lua_pushusertag (void *u, int tag) 945void lua_pushusertag (void *u, int tag)
946{ 946{
@@ -966,8 +966,8 @@ void lua_pushobject (lua_Object o)
966 if (o == LUA_NOOBJECT) 966 if (o == LUA_NOOBJECT)
967 lua_error("attempt to push a NOOBJECT"); 967 lua_error("attempt to push a NOOBJECT");
968 *top = *Address(o); 968 *top = *Address(o);
969 if (tag(top) == LUA_T_MARK) tag(top) = LUA_T_FUNCTION; 969 if (ttype(top) == LUA_T_MARK) ttype(top) = LUA_T_FUNCTION;
970 else if (tag(top) == LUA_T_CMARK) tag(top) = LUA_T_CFUNCTION; 970 else if (ttype(top) == LUA_T_CMARK) ttype(top) = LUA_T_CFUNCTION;
971 incr_top; 971 incr_top;
972} 972}
973 973
@@ -991,13 +991,13 @@ static void call_arith (char *op)
991 callFB(FB_ARITH); 991 callFB(FB_ARITH);
992} 992}
993 993
994static void comparison (lua_Type tag_less, lua_Type tag_equal, 994static void comparison (lua_Type ttype_less, lua_Type ttype_equal,
995 lua_Type tag_great, char *op) 995 lua_Type ttype_great, char *op)
996{ 996{
997 Object *l = top-2; 997 Object *l = top-2;
998 Object *r = top-1; 998 Object *r = top-1;
999 int result; 999 int result;
1000 if (tag(l) == LUA_T_NUMBER && tag(r) == LUA_T_NUMBER) 1000 if (ttype(l) == LUA_T_NUMBER && ttype(r) == LUA_T_NUMBER)
1001 result = (nvalue(l) < nvalue(r)) ? -1 : (nvalue(l) == nvalue(r)) ? 0 : 1; 1001 result = (nvalue(l) < nvalue(r)) ? -1 : (nvalue(l) == nvalue(r)) ? 0 : 1;
1002 else if (tostring(l) || tostring(r)) 1002 else if (tostring(l) || tostring(r))
1003 { 1003 {
@@ -1009,7 +1009,8 @@ static void comparison (lua_Type tag_less, lua_Type tag_equal,
1009 result = strcmp(svalue(l), svalue(r)); 1009 result = strcmp(svalue(l), svalue(r));
1010 top--; 1010 top--;
1011 nvalue(top-1) = 1; 1011 nvalue(top-1) = 1;
1012 tag(top-1) = (result < 0) ? tag_less : (result == 0) ? tag_equal : tag_great; 1012 ttype(top-1) = (result < 0) ? ttype_less :
1013 (result == 0) ? ttype_equal : ttype_great;
1013} 1014}
1014 1015
1015 1016
@@ -1021,18 +1022,18 @@ static void adjust_varargs (StkId first_extra_arg)
1021 int i; 1022 int i;
1022 if (nvararg < 0) nvararg = 0; 1023 if (nvararg < 0) nvararg = 0;
1023 avalue(&arg) = lua_createarray(nvararg+1); /* +1 for field 'n' */ 1024 avalue(&arg) = lua_createarray(nvararg+1); /* +1 for field 'n' */
1024 tag(&arg) = LUA_T_ARRAY; 1025 ttype(&arg) = LUA_T_ARRAY;
1025 for (i=0; i<nvararg; i++) { 1026 for (i=0; i<nvararg; i++) {
1026 Object index; 1027 Object index;
1027 tag(&index) = LUA_T_NUMBER; 1028 ttype(&index) = LUA_T_NUMBER;
1028 nvalue(&index) = i+1; 1029 nvalue(&index) = i+1;
1029 *(lua_hashdefine(avalue(&arg), &index)) = *(firstelem+i); 1030 *(lua_hashdefine(avalue(&arg), &index)) = *(firstelem+i);
1030 } 1031 }
1031 /* store counter in field "n" */ { 1032 /* store counter in field "n" */ {
1032 Object index, extra; 1033 Object index, extra;
1033 tag(&index) = LUA_T_STRING; 1034 ttype(&index) = LUA_T_STRING;
1034 tsvalue(&index) = lua_createstring("n"); 1035 tsvalue(&index) = lua_createstring("n");
1035 tag(&extra) = LUA_T_NUMBER; 1036 ttype(&extra) = LUA_T_NUMBER;
1036 nvalue(&extra) = nvararg; 1037 nvalue(&extra) = nvararg;
1037 *(lua_hashdefine(avalue(&arg), &index)) = extra; 1038 *(lua_hashdefine(avalue(&arg), &index)) = extra;
1038 } 1039 }
@@ -1056,22 +1057,22 @@ static StkId lua_execute (Byte *pc, StkId base)
1056 OpCode opcode; 1057 OpCode opcode;
1057 switch (opcode = (OpCode)*pc++) 1058 switch (opcode = (OpCode)*pc++)
1058 { 1059 {
1059 case PUSHNIL: tag(top) = LUA_T_NIL; incr_top; break; 1060 case PUSHNIL: ttype(top) = LUA_T_NIL; incr_top; break;
1060 1061
1061 case PUSH0: case PUSH1: case PUSH2: 1062 case PUSH0: case PUSH1: case PUSH2:
1062 tag(top) = LUA_T_NUMBER; 1063 ttype(top) = LUA_T_NUMBER;
1063 nvalue(top) = opcode-PUSH0; 1064 nvalue(top) = opcode-PUSH0;
1064 incr_top; 1065 incr_top;
1065 break; 1066 break;
1066 1067
1067 case PUSHBYTE: 1068 case PUSHBYTE:
1068 tag(top) = LUA_T_NUMBER; nvalue(top) = *pc++; incr_top; break; 1069 ttype(top) = LUA_T_NUMBER; nvalue(top) = *pc++; incr_top; break;
1069 1070
1070 case PUSHWORD: 1071 case PUSHWORD:
1071 { 1072 {
1072 Word w; 1073 Word w;
1073 get_word(w,pc); 1074 get_word(w,pc);
1074 tag(top) = LUA_T_NUMBER; nvalue(top) = w; 1075 ttype(top) = LUA_T_NUMBER; nvalue(top) = w;
1075 incr_top; 1076 incr_top;
1076 } 1077 }
1077 break; 1078 break;
@@ -1080,7 +1081,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1080 { 1081 {
1081 real num; 1082 real num;
1082 get_float(num,pc); 1083 get_float(num,pc);
1083 tag(top) = LUA_T_NUMBER; nvalue(top) = num; 1084 ttype(top) = LUA_T_NUMBER; nvalue(top) = num;
1084 incr_top; 1085 incr_top;
1085 } 1086 }
1086 break; 1087 break;
@@ -1089,7 +1090,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1089 { 1090 {
1090 Word w; 1091 Word w;
1091 get_word(w,pc); 1092 get_word(w,pc);
1092 tag(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w]; 1093 ttype(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w];
1093 incr_top; 1094 incr_top;
1094 } 1095 }
1095 break; 1096 break;
@@ -1099,7 +1100,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1099 TFunc *f; 1100 TFunc *f;
1100 get_code(f,pc); 1101 get_code(f,pc);
1101 luaI_insertfunction(f); /* may take part in GC */ 1102 luaI_insertfunction(f); /* may take part in GC */
1102 top->tag = LUA_T_FUNCTION; 1103 top->ttype = LUA_T_FUNCTION;
1103 top->value.tf = f; 1104 top->value.tf = f;
1104 incr_top; 1105 incr_top;
1105 } 1106 }
@@ -1130,7 +1131,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1130 Object receiver = *(top-1); 1131 Object receiver = *(top-1);
1131 Word w; 1132 Word w;
1132 get_word(w,pc); 1133 get_word(w,pc);
1133 tag(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w]; 1134 ttype(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w];
1134 incr_top; 1135 incr_top;
1135 pushsubscript(); 1136 pushsubscript();
1136 *top = receiver; 1137 *top = receiver;
@@ -1176,7 +1177,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1176 arr = top-n-1; 1177 arr = top-n-1;
1177 while (n) 1178 while (n)
1178 { 1179 {
1179 tag(top) = LUA_T_NUMBER; nvalue(top) = n+m; 1180 ttype(top) = LUA_T_NUMBER; nvalue(top) = n+m;
1180 *(lua_hashdefine (avalue(arr), top)) = *(top-1); 1181 *(lua_hashdefine (avalue(arr), top)) = *(top-1);
1181 top--; 1182 top--;
1182 n--; 1183 n--;
@@ -1192,7 +1193,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1192 { 1193 {
1193 Word w; 1194 Word w;
1194 get_word(w,pc); 1195 get_word(w,pc);
1195 tag(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w]; 1196 ttype(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w];
1196 *(lua_hashdefine (avalue(arr), top)) = *(top-1); 1197 *(lua_hashdefine (avalue(arr), top)) = *(top-1);
1197 top--; 1198 top--;
1198 n--; 1199 n--;
@@ -1227,7 +1228,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1227 Word size; 1228 Word size;
1228 get_word(size,pc); 1229 get_word(size,pc);
1229 avalue(top) = lua_createarray(size); 1230 avalue(top) = lua_createarray(size);
1230 tag(top) = LUA_T_ARRAY; 1231 ttype(top) = LUA_T_ARRAY;
1231 incr_top; 1232 incr_top;
1232 } 1233 }
1233 break; 1234 break;
@@ -1236,7 +1237,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1236 { 1237 {
1237 int res = lua_equalObj(top-2, top-1); 1238 int res = lua_equalObj(top-2, top-1);
1238 --top; 1239 --top;
1239 tag(top-1) = res ? LUA_T_NUMBER : LUA_T_NIL; 1240 ttype(top-1) = res ? LUA_T_NUMBER : LUA_T_NIL;
1240 nvalue(top-1) = 1; 1241 nvalue(top-1) = 1;
1241 } 1242 }
1242 break; 1243 break;
@@ -1334,7 +1335,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1334 case MINUSOP: 1335 case MINUSOP:
1335 if (tonumber(top-1)) 1336 if (tonumber(top-1))
1336 { 1337 {
1337 tag(top) = LUA_T_NIL; 1338 ttype(top) = LUA_T_NIL;
1338 incr_top; 1339 incr_top;
1339 call_arith("unm"); 1340 call_arith("unm");
1340 } 1341 }
@@ -1343,7 +1344,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1343 break; 1344 break;
1344 1345
1345 case NOTOP: 1346 case NOTOP:
1346 tag(top-1) = (tag(top-1) == LUA_T_NIL) ? LUA_T_NUMBER : LUA_T_NIL; 1347 ttype(top-1) = (ttype(top-1) == LUA_T_NIL) ? LUA_T_NUMBER : LUA_T_NIL;
1347 nvalue(top-1) = 1; 1348 nvalue(top-1) = 1;
1348 break; 1349 break;
1349 1350
@@ -1351,7 +1352,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1351 { 1352 {
1352 Word w; 1353 Word w;
1353 get_word(w,pc); 1354 get_word(w,pc);
1354 if (tag(top-1) != LUA_T_NIL) pc += w; 1355 if (ttype(top-1) != LUA_T_NIL) pc += w;
1355 } 1356 }
1356 break; 1357 break;
1357 1358
@@ -1359,7 +1360,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1359 { 1360 {
1360 Word w; 1361 Word w;
1361 get_word(w,pc); 1362 get_word(w,pc);
1362 if (tag(top-1) == LUA_T_NIL) pc += w; 1363 if (ttype(top-1) == LUA_T_NIL) pc += w;
1363 } 1364 }
1364 break; 1365 break;
1365 1366
@@ -1384,7 +1385,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1384 Word w; 1385 Word w;
1385 get_word(w,pc); 1386 get_word(w,pc);
1386 top--; 1387 top--;
1387 if (tag(top) == LUA_T_NIL) pc += w; 1388 if (ttype(top) == LUA_T_NIL) pc += w;
1388 } 1389 }
1389 break; 1390 break;
1390 1391
@@ -1393,7 +1394,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1393 Word w; 1394 Word w;
1394 get_word(w,pc); 1395 get_word(w,pc);
1395 top--; 1396 top--;
1396 if (tag(top) == LUA_T_NIL) pc -= w; 1397 if (ttype(top) == LUA_T_NIL) pc -= w;
1397 } 1398 }
1398 break; 1399 break;
1399 1400
@@ -1418,12 +1419,12 @@ static StkId lua_execute (Byte *pc, StkId base)
1418 { 1419 {
1419 Word line; 1420 Word line;
1420 get_word(line,pc); 1421 get_word(line,pc);
1421 if ((stack+base-1)->tag != LUA_T_LINE) 1422 if ((stack+base-1)->ttype != LUA_T_LINE)
1422 { 1423 {
1423 /* open space for LINE value */ 1424 /* open space for LINE value */
1424 open_stack((top-stack)-base); 1425 open_stack((top-stack)-base);
1425 base++; 1426 base++;
1426 (stack+base-1)->tag = LUA_T_LINE; 1427 (stack+base-1)->ttype = LUA_T_LINE;
1427 } 1428 }
1428 (stack+base-1)->value.i = line; 1429 (stack+base-1)->value.i = line;
1429 if (lua_linehook) 1430 if (lua_linehook)
diff --git a/opcode.h b/opcode.h
index c15b9533..53f71ba8 100644
--- a/opcode.h
+++ b/opcode.h
@@ -1,6 +1,6 @@
1/* 1/*
2** TeCGraf - PUC-Rio 2** TeCGraf - PUC-Rio
3** $Id: opcode.h,v 3.26 1997/02/20 15:51:14 roberto Exp roberto $ 3** $Id: opcode.h,v 3.27 1997/03/06 17:30:55 roberto Exp roberto $
4*/ 4*/
5 5
6#ifndef opcode_h 6#ifndef opcode_h
@@ -121,13 +121,13 @@ typedef union
121 121
122typedef struct Object 122typedef struct Object
123{ 123{
124 lua_Type tag; 124 lua_Type ttype;
125 Value value; 125 Value value;
126} Object; 126} Object;
127 127
128 128
129/* Macros to access structure members */ 129/* Macros to access structure members */
130#define tag(o) ((o)->tag) 130#define ttype(o) ((o)->ttype)
131#define nvalue(o) ((o)->value.n) 131#define nvalue(o) ((o)->value.n)
132#define svalue(o) ((o)->value.ts->str) 132#define svalue(o) ((o)->value.ts->str)
133#define tsvalue(o) ((o)->value.ts) 133#define tsvalue(o) ((o)->value.ts)
@@ -136,7 +136,7 @@ typedef struct Object
136 136
137/* Macros to access symbol table */ 137/* Macros to access symbol table */
138#define s_object(i) (lua_table[i].object) 138#define s_object(i) (lua_table[i].object)
139#define s_tag(i) (tag(&s_object(i))) 139#define s_ttype(i) (ttype(&s_object(i)))
140#define s_nvalue(i) (nvalue(&s_object(i))) 140#define s_nvalue(i) (nvalue(&s_object(i)))
141#define s_svalue(i) (svalue(&s_object(i))) 141#define s_svalue(i) (svalue(&s_object(i)))
142#define s_tsvalue(i) (tsvalue(&s_object(i))) 142#define s_tsvalue(i) (tsvalue(&s_object(i)))
diff --git a/table.c b/table.c
index 5fc85f3d..a7b895d4 100644
--- a/table.c
+++ b/table.c
@@ -3,7 +3,7 @@
3** Module to control static tables 3** Module to control static tables
4*/ 4*/
5 5
6char *rcs_table="$Id: table.c,v 2.58 1996/11/01 12:47:45 roberto Exp roberto $"; 6char *rcs_table="$Id: table.c,v 2.59 1997/02/26 17:38:41 roberto Unstable roberto $";
7 7
8#include "mem.h" 8#include "mem.h"
9#include "opcode.h" 9#include "opcode.h"
@@ -64,7 +64,7 @@ Word luaI_findsymbol (TaggedString *t)
64 symbolEM, MAX_WORD); 64 symbolEM, MAX_WORD);
65 t->varindex = lua_ntable; 65 t->varindex = lua_ntable;
66 lua_table[lua_ntable].varname = t; 66 lua_table[lua_ntable].varname = t;
67 s_tag(lua_ntable) = LUA_T_NIL; 67 s_ttype(lua_ntable) = LUA_T_NIL;
68 lua_ntable++; 68 lua_ntable++;
69 } 69 }
70 return t->varindex; 70 return t->varindex;
@@ -128,11 +128,11 @@ static char *lua_travsymbol (int (*fn)(Object *))
128*/ 128*/
129int lua_markobject (Object *o) 129int lua_markobject (Object *o)
130{/* if already marked, does not change mark value */ 130{/* if already marked, does not change mark value */
131 if (tag(o) == LUA_T_STRING && !tsvalue(o)->marked) 131 if (ttype(o) == LUA_T_STRING && !tsvalue(o)->marked)
132 tsvalue(o)->marked = 1; 132 tsvalue(o)->marked = 1;
133 else if (tag(o) == LUA_T_ARRAY) 133 else if (ttype(o) == LUA_T_ARRAY)
134 lua_hashmark (avalue(o)); 134 lua_hashmark (avalue(o));
135 else if ((o->tag == LUA_T_FUNCTION || o->tag == LUA_T_MARK) 135 else if ((o->ttype == LUA_T_FUNCTION || o->ttype == LUA_T_MARK)
136 && !o->value.tf->marked) 136 && !o->value.tf->marked)
137 o->value.tf->marked = 1; 137 o->value.tf->marked = 1;
138 return 0; 138 return 0;
@@ -143,7 +143,7 @@ int lua_markobject (Object *o)
143*/ 143*/
144int luaI_ismarked (Object *o) 144int luaI_ismarked (Object *o)
145{ 145{
146 switch (o->tag) 146 switch (o->ttype)
147 { 147 {
148 case LUA_T_STRING: 148 case LUA_T_STRING:
149 return o->value.ts->marked; 149 return o->value.ts->marked;
@@ -207,7 +207,7 @@ void luaI_nextvar (void)
207 } 207 }
208 else 208 else
209 next = luaI_findsymbolbyname(lua_getstring(o)) + 1; 209 next = luaI_findsymbolbyname(lua_getstring(o)) + 1;
210 while (next < lua_ntable && s_tag(next) == LUA_T_NIL) next++; 210 while (next < lua_ntable && s_ttype(next) == LUA_T_NIL) next++;
211 if (next < lua_ntable) 211 if (next < lua_ntable)
212 { 212 {
213 lua_pushstring(lua_table[next].varname->str); 213 lua_pushstring(lua_table[next].varname->str);
@@ -219,14 +219,15 @@ void luaI_nextvar (void)
219static Object *functofind; 219static Object *functofind;
220static int checkfunc (Object *o) 220static int checkfunc (Object *o)
221{ 221{
222 if (o->tag == LUA_T_FUNCTION) 222 if (o->ttype == LUA_T_FUNCTION)
223 return 223 return
224 ((functofind->tag == LUA_T_FUNCTION || functofind->tag == LUA_T_MARK) 224 ((functofind->ttype == LUA_T_FUNCTION || functofind->ttype == LUA_T_MARK)
225 && (functofind->value.tf == o->value.tf)); 225 && (functofind->value.tf == o->value.tf));
226 if (o->tag == LUA_T_CFUNCTION) 226 if (o->ttype == LUA_T_CFUNCTION)
227 return 227 return
228 ((functofind->tag == LUA_T_CFUNCTION || functofind->tag == LUA_T_CMARK) 228 ((functofind->ttype == LUA_T_CFUNCTION ||
229 && (functofind->value.f == o->value.f)); 229 functofind->ttype == LUA_T_CMARK) &&
230 (functofind->value.f == o->value.f));
230 return 0; 231 return 0;
231} 232}
232 233