aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>1997-03-31 11:02:58 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>1997-03-31 11:02:58 -0300
commitad5574c4c97af3ef863a6fb4b72142f3780103b2 (patch)
tree7ef70322749e3e433321edbea89d61087d820c55
parent264f8c5e7bd168de2f0ca07399e6fc70d5a820d3 (diff)
downloadlua-ad5574c4c97af3ef863a6fb4b72142f3780103b2.tar.gz
lua-ad5574c4c97af3ef863a6fb4b72142f3780103b2.tar.bz2
lua-ad5574c4c97af3ef863a6fb4b72142f3780103b2.zip
"Object" renamed to "TObject" (Tagged Object), to avoid conflicts with
pre-defined names in some C compilers.
-rw-r--r--fallback.c30
-rw-r--r--fallback.h18
-rw-r--r--func.c2
-rw-r--r--hash.c14
-rw-r--r--hash.h12
-rw-r--r--opcode.c118
-rw-r--r--opcode.h14
-rw-r--r--table.c14
-rw-r--r--table.h8
-rw-r--r--tree.c4
10 files changed, 117 insertions, 117 deletions
diff --git a/fallback.c b/fallback.c
index 3e4d6c3b..32ff53d8 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.32 1997/03/21 18:37:28 roberto Exp roberto $"; 6char *rcs_fallback="$Id: fallback.c,v 1.33 1997/03/24 17:13:22 roberto Exp roberto $";
7 7
8#include <stdio.h> 8#include <stdio.h>
9#include <string.h> 9#include <string.h>
@@ -39,12 +39,12 @@ void luaI_type (void)
39*/ 39*/
40 40
41static struct ref { 41static struct ref {
42 Object o; 42 TObject o;
43 enum {LOCK, HOLD, FREE, COLLECTED} status; 43 enum {LOCK, HOLD, FREE, COLLECTED} status;
44} *refArray = NULL; 44} *refArray = NULL;
45static int refSize = 0; 45static int refSize = 0;
46 46
47int luaI_ref (Object *object, int lock) 47int luaI_ref (TObject *object, int lock)
48{ 48{
49 int i; 49 int i;
50 int oldSize; 50 int oldSize;
@@ -73,9 +73,9 @@ void lua_unref (int ref)
73} 73}
74 74
75 75
76Object *luaI_getref (int ref) 76TObject *luaI_getref (int ref)
77{ 77{
78 static Object nul = {LUA_T_NIL, {0}}; 78 static TObject nul = {LUA_T_NIL, {0}};
79 if (ref == -1) 79 if (ref == -1)
80 return &nul; 80 return &nul;
81 if (ref >= 0 && ref < refSize && 81 if (ref >= 0 && ref < refSize &&
@@ -86,7 +86,7 @@ Object *luaI_getref (int ref)
86} 86}
87 87
88 88
89void luaI_travlock (int (*fn)(Object *)) 89void luaI_travlock (int (*fn)(TObject *))
90{ 90{
91 int i; 91 int i;
92 for (i=0; i<refSize; i++) 92 for (i=0; i<refSize; i++)
@@ -140,7 +140,7 @@ static int luaI_checkevent (char *name, char *list[])
140 140
141static struct IM { 141static struct IM {
142 lua_Type tp; 142 lua_Type tp;
143 Object int_method[IM_N]; 143 TObject int_method[IM_N];
144} *luaI_IMtable = NULL; 144} *luaI_IMtable = NULL;
145 145
146static int IMtable_size = 0; 146static int IMtable_size = 0;
@@ -219,7 +219,7 @@ lua_Type luaI_typetag (int tag)
219 } 219 }
220} 220}
221 221
222void luaI_settag (int tag, Object *o) 222void luaI_settag (int tag, TObject *o)
223{ 223{
224 if (ttype(o) != luaI_typetag(tag)) 224 if (ttype(o) != luaI_typetag(tag))
225 lua_error("Tag is not compatible with this type"); 225 lua_error("Tag is not compatible with this type");
@@ -230,7 +230,7 @@ void luaI_settag (int tag, Object *o)
230} 230}
231 231
232 232
233int luaI_tag (Object *o) 233int luaI_tag (TObject *o)
234{ 234{
235 lua_Type t = ttype(o); 235 lua_Type t = ttype(o);
236 if (t == LUA_T_USERDATA) 236 if (t == LUA_T_USERDATA)
@@ -241,7 +241,7 @@ int luaI_tag (Object *o)
241} 241}
242 242
243 243
244Object *luaI_getim (int tag, IMS event) 244TObject *luaI_getim (int tag, IMS event)
245{ 245{
246 if (tag > LUA_T_USERDATA) 246 if (tag > LUA_T_USERDATA)
247 tag = LUA_T_USERDATA; /* default for non-registered tags */ 247 tag = LUA_T_USERDATA; /* default for non-registered tags */
@@ -263,11 +263,11 @@ void luaI_setintmethod (void)
263 luaI_IMtable[-t].int_method[e] = *luaI_Address(func); 263 luaI_IMtable[-t].int_method[e] = *luaI_Address(func);
264} 264}
265 265
266static Object gmethod[GIM_N] = { 266static TObject gmethod[GIM_N] = {
267 {LUA_T_NIL, {NULL}}, {LUA_T_NIL, {NULL}}, {LUA_T_NIL, {NULL}} 267 {LUA_T_NIL, {NULL}}, {LUA_T_NIL, {NULL}}, {LUA_T_NIL, {NULL}}
268}; 268};
269 269
270Object *luaI_getgim (IMGS event) 270TObject *luaI_getgim (IMGS event)
271{ 271{
272 return &gmethod[event]; 272 return &gmethod[event];
273} 273}
@@ -282,7 +282,7 @@ void luaI_setglobalmethod (void)
282 gmethod[e] = *luaI_Address(func); 282 gmethod[e] = *luaI_Address(func);
283} 283}
284 284
285char *luaI_travfallbacks (int (*fn)(Object *)) 285char *luaI_travfallbacks (int (*fn)(TObject *))
286{ 286{
287 int e; 287 int e;
288 for (e=GIM_ERROR; e<=GIM_SETGLOBAL; e++) { /* ORDER GIM */ 288 for (e=GIM_ERROR; e<=GIM_SETGLOBAL; e++) { /* ORDER GIM */
@@ -324,7 +324,7 @@ static void typeFB (void)
324} 324}
325 325
326 326
327static void fillvalids (IMS e, Object *func) 327static void fillvalids (IMS e, TObject *func)
328{ 328{
329 int t; 329 int t;
330 for (t=LUA_T_NIL; t<=LUA_T_USERDATA; t++) 330 for (t=LUA_T_NIL; t<=LUA_T_USERDATA; t++)
@@ -335,7 +335,7 @@ static void fillvalids (IMS e, Object *func)
335void luaI_setfallback (void) 335void luaI_setfallback (void)
336{ 336{
337 int e; 337 int e;
338 Object oldfunc; 338 TObject oldfunc;
339 lua_CFunction replace; 339 lua_CFunction replace;
340 char *name = luaL_check_string(1, "setfallback"); 340 char *name = luaL_check_string(1, "setfallback");
341 lua_Object func = lua_getparam(2); 341 lua_Object func = lua_getparam(2);
diff --git a/fallback.h b/fallback.h
index 6442680a..323c35db 100644
--- a/fallback.h
+++ b/fallback.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: fallback.h,v 1.16 1997/03/20 19:20:43 roberto Exp roberto $ 2** $Id: fallback.h,v 1.17 1997/03/24 17:13:22 roberto Exp roberto $
3*/ 3*/
4 4
5#ifndef fallback_h 5#ifndef fallback_h
@@ -49,19 +49,19 @@ typedef enum {
49#define GIM_N 3 49#define GIM_N 3
50 50
51void luaI_setfallback (void); 51void luaI_setfallback (void);
52int luaI_ref (Object *object, int lock); 52int luaI_ref (TObject *object, int lock);
53Object *luaI_getref (int ref); 53TObject *luaI_getref (int ref);
54void luaI_travlock (int (*fn)(Object *)); 54void luaI_travlock (int (*fn)(TObject *));
55void luaI_invalidaterefs (void); 55void luaI_invalidaterefs (void);
56char *luaI_travfallbacks (int (*fn)(Object *)); 56char *luaI_travfallbacks (int (*fn)(TObject *));
57 57
58void luaI_type (void); 58void luaI_type (void);
59void luaI_settag (int tag, Object *o); 59void luaI_settag (int tag, TObject *o);
60lua_Type luaI_typetag (int tag); 60lua_Type luaI_typetag (int tag);
61Object *luaI_getim (int tag, IMS event); 61TObject *luaI_getim (int tag, IMS event);
62#define luaI_getimbyObj(o,e) (luaI_getim(luaI_tag(o),(e))) 62#define luaI_getimbyObj(o,e) (luaI_getim(luaI_tag(o),(e)))
63Object *luaI_getgim (IMGS event); 63TObject *luaI_getgim (IMGS event);
64int luaI_tag (Object *o); 64int luaI_tag (TObject *o);
65void luaI_setintmethod (void); 65void luaI_setintmethod (void);
66void luaI_setglobalmethod (void); 66void luaI_setglobalmethod (void);
67void luaI_initfallbacks (void); 67void luaI_initfallbacks (void);
diff --git a/func.c b/func.c
index 61cd614a..f6055041 100644
--- a/func.c
+++ b/func.c
@@ -83,7 +83,7 @@ Long luaI_funccollector (void)
83 83
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 TObject *f = luaI_Address(func);
87 if (f->ttype == LUA_T_MARK || f->ttype == 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;
diff --git a/hash.c b/hash.c
index 8759938c..9e0170c4 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.36 1997/03/19 19:41:10 roberto Exp roberto $"; 6char *rcs_hash="$Id: hash.c,v 2.37 1997/03/21 18:52:37 roberto Exp roberto $";
7 7
8 8
9#include "mem.h" 9#include "mem.h"
@@ -48,7 +48,7 @@ int luaI_redimension (int nhash)
48 return 0; /* to avoid warnings */ 48 return 0; /* to avoid warnings */
49} 49}
50 50
51static int hashindex (Hash *t, Object *ref) /* hash function */ 51static int hashindex (Hash *t, TObject *ref) /* hash function */
52{ 52{
53 long int h; 53 long int h;
54 switch (ttype(ref)) { 54 switch (ttype(ref)) {
@@ -70,7 +70,7 @@ static int hashindex (Hash *t, Object *ref) /* hash function */
70 return h%nhash(t); /* make it a valid index */ 70 return h%nhash(t); /* make it a valid index */
71} 71}
72 72
73int lua_equalObj (Object *t1, Object *t2) 73int lua_equalObj (TObject *t1, TObject *t2)
74{ 74{
75 if (ttype(t1) != ttype(t2)) return 0; 75 if (ttype(t1) != ttype(t2)) return 0;
76 switch (ttype(t1)) 76 switch (ttype(t1))
@@ -87,7 +87,7 @@ int lua_equalObj (Object *t1, Object *t2)
87 } 87 }
88} 88}
89 89
90static int present (Hash *t, Object *ref) 90static int present (Hash *t, TObject *ref)
91{ 91{
92 int h = hashindex(t, ref); 92 int h = hashindex(t, ref);
93 while (ttype(ref(node(t, h))) != LUA_T_NIL) 93 while (ttype(ref(node(t, h))) != LUA_T_NIL)
@@ -162,7 +162,7 @@ void lua_hashmark (Hash *h)
162void luaI_hashcallIM (void) 162void luaI_hashcallIM (void)
163{ 163{
164 Hash *curr_array; 164 Hash *curr_array;
165 Object t; 165 TObject t;
166 ttype(&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)
@@ -242,7 +242,7 @@ static void rehash (Hash *t)
242** If the hash node is present, return its pointer, otherwise return 242** If the hash node is present, return its pointer, otherwise return
243** null. 243** null.
244*/ 244*/
245Object *lua_hashget (Hash *t, Object *ref) 245TObject *lua_hashget (Hash *t, TObject *ref)
246{ 246{
247 int h = present(t, ref); 247 int h = present(t, ref);
248 if (ttype(ref(node(t, h))) != LUA_T_NIL) return val(node(t, h)); 248 if (ttype(ref(node(t, h))) != LUA_T_NIL) return val(node(t, h));
@@ -254,7 +254,7 @@ Object *lua_hashget (Hash *t, Object *ref)
254** If the hash node is present, return its pointer, otherwise create a new 254** If the hash node is present, return its pointer, otherwise create a new
255** node for the given reference and also return its pointer. 255** node for the given reference and also return its pointer.
256*/ 256*/
257Object *lua_hashdefine (Hash *t, Object *ref) 257TObject *lua_hashdefine (Hash *t, TObject *ref)
258{ 258{
259 int h; 259 int h;
260 Node *n; 260 Node *n;
diff --git a/hash.h b/hash.h
index 1497dd0b..a91e1e15 100644
--- a/hash.h
+++ b/hash.h
@@ -1,7 +1,7 @@
1/* 1/*
2** hash.h 2** hash.h
3** hash manager for lua 3** hash manager for lua
4** $Id: hash.h,v 2.13 1997/02/26 17:38:41 roberto Unstable roberto $ 4** $Id: hash.h,v 2.14 1997/03/19 19:41:10 roberto Exp roberto $
5*/ 5*/
6 6
7#ifndef hash_h 7#ifndef hash_h
@@ -11,8 +11,8 @@
11#include "opcode.h" 11#include "opcode.h"
12 12
13typedef struct node { 13typedef struct node {
14 Object ref; 14 TObject ref;
15 Object val; 15 TObject val;
16} Node; 16} Node;
17 17
18typedef struct Hash { 18typedef struct Hash {
@@ -25,14 +25,14 @@ typedef struct Hash {
25} Hash; 25} Hash;
26 26
27 27
28int lua_equalObj (Object *t1, Object *t2); 28int lua_equalObj (TObject *t1, TObject *t2);
29int luaI_redimension (int nhash); 29int luaI_redimension (int nhash);
30Hash *lua_createarray (int nhash); 30Hash *lua_createarray (int nhash);
31void lua_hashmark (Hash *h); 31void lua_hashmark (Hash *h);
32Long lua_hashcollector (void); 32Long lua_hashcollector (void);
33void luaI_hashcallIM (void); 33void luaI_hashcallIM (void);
34Object *lua_hashget (Hash *t, Object *ref); 34TObject *lua_hashget (Hash *t, TObject *ref);
35Object *lua_hashdefine (Hash *t, Object *ref); 35TObject *lua_hashdefine (Hash *t, TObject *ref);
36void lua_next (void); 36void lua_next (void);
37 37
38#endif 38#endif
diff --git a/opcode.c b/opcode.c
index 31ecdf85..595277a9 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.85 1997/03/19 19:41:10 roberto Exp roberto $"; 6char *rcs_opcode="$Id: opcode.c,v 3.86 1997/03/20 19:20:43 roberto Exp roberto $";
7 7
8#include <setjmp.h> 8#include <setjmp.h>
9#include <stdio.h> 9#include <stdio.h>
@@ -32,14 +32,14 @@ char *rcs_opcode="$Id: opcode.c,v 3.85 1997/03/19 19:41:10 roberto Exp roberto $
32 32
33typedef int StkId; /* index to stack elements */ 33typedef int StkId; /* index to stack elements */
34 34
35static Object initial_stack; 35static TObject initial_stack;
36 36
37static Object *stackLimit = &initial_stack+1; 37static TObject *stackLimit = &initial_stack+1;
38static Object *stack = &initial_stack; 38static TObject *stack = &initial_stack;
39static Object *top = &initial_stack; 39static TObject *top = &initial_stack;
40 40
41 41
42/* macros to convert from lua_Object to (Object *) and back */ 42/* macros to convert from lua_Object to (TObject *) and back */
43 43
44#define Address(lo) ((lo)+stack-1) 44#define Address(lo) ((lo)+stack-1)
45#define Ref(st) ((st)-stack+1) 45#define Ref(st) ((st)-stack+1)
@@ -72,7 +72,7 @@ static void do_call (StkId base, int nResults);
72 72
73 73
74 74
75Object *luaI_Address (lua_Object o) 75TObject *luaI_Address (lua_Object o)
76{ 76{
77 return Address(o); 77 return Address(o);
78} 78}
@@ -84,7 +84,7 @@ Object *luaI_Address (lua_Object o)
84static void lua_initstack (void) 84static void lua_initstack (void)
85{ 85{
86 Long maxstack = STACK_SIZE; 86 Long maxstack = STACK_SIZE;
87 stack = newvector(maxstack, Object); 87 stack = newvector(maxstack, TObject);
88 stackLimit = stack+maxstack; 88 stackLimit = stack+maxstack;
89 top = stack; 89 top = stack;
90 *(top++) = initial_stack; 90 *(top++) = initial_stack;
@@ -105,7 +105,7 @@ static void growstack (void)
105 static int limit = STACK_LIMIT; 105 static int limit = STACK_LIMIT;
106 StkId t = top-stack; 106 StkId t = top-stack;
107 Long stacksize = stackLimit - stack; 107 Long stacksize = stackLimit - stack;
108 stacksize = growvector(&stack, stacksize, Object, stackEM, limit+100); 108 stacksize = growvector(&stack, stacksize, TObject, stackEM, limit+100);
109 stackLimit = stack+stacksize; 109 stackLimit = stack+stacksize;
110 top = stack + t; 110 top = stack + t;
111 if (stacksize >= limit) 111 if (stacksize >= limit)
@@ -134,7 +134,7 @@ static char *lua_strconc (char *l, char *r)
134** Convert, if possible, to a number object. 134** Convert, if possible, to a number object.
135** Return 0 if success, not 0 if error. 135** Return 0 if success, not 0 if error.
136*/ 136*/
137static int lua_tonumber (Object *obj) 137static int lua_tonumber (TObject *obj)
138{ 138{
139 float t; 139 float t;
140 char c; 140 char c;
@@ -155,7 +155,7 @@ static int lua_tonumber (Object *obj)
155** Convert, if possible, to a string ttype 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 (TObject *obj)
159{ 159{
160 if (ttype(obj) != LUA_T_NUMBER) 160 if (ttype(obj) != LUA_T_NUMBER)
161 return 1; 161 return 1;
@@ -179,7 +179,7 @@ static int lua_tostring (Object *obj)
179*/ 179*/
180static void adjust_top (StkId newtop) 180static void adjust_top (StkId newtop)
181{ 181{
182 Object *nt; 182 TObject *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) ttype(top++) = LUA_T_NIL; 185 while (top < nt) ttype(top++) = LUA_T_NIL;
@@ -228,7 +228,7 @@ static void callHook (StkId base, lua_Type type, int isreturn)
228 (*lua_callhook)(LUA_NOOBJECT, "(return)", 0); 228 (*lua_callhook)(LUA_NOOBJECT, "(return)", 0);
229 else 229 else
230 { 230 {
231 Object *f = stack+base-1; 231 TObject *f = stack+base-1;
232 if (type == LUA_T_MARK) 232 if (type == LUA_T_MARK)
233 (*lua_callhook)(Ref(f), f->value.tf->fileName, f->value.tf->lineDefined); 233 (*lua_callhook)(Ref(f), f->value.tf->fileName, f->value.tf->lineDefined);
234 else 234 else
@@ -261,7 +261,7 @@ static StkId callC (lua_CFunction func, StkId base)
261 return firstResult; 261 return firstResult;
262} 262}
263 263
264static void callIM (Object *f, int nParams, int nResults) 264static void callIM (TObject *f, int nParams, int nResults)
265{ 265{
266 open_stack(nParams); 266 open_stack(nParams);
267 *(top-nParams-1) = *f; 267 *(top-nParams-1) = *f;
@@ -278,7 +278,7 @@ static void callIM (Object *f, int nParams, int nResults)
278static void do_call (StkId base, int nResults) 278static void do_call (StkId base, int nResults)
279{ 279{
280 StkId firstResult; 280 StkId firstResult;
281 Object *func = stack+base-1; 281 TObject *func = stack+base-1;
282 int i; 282 int i;
283 if (ttype(func) == LUA_T_CFUNCTION) { 283 if (ttype(func) == LUA_T_CFUNCTION) {
284 ttype(func) = LUA_T_CMARK; 284 ttype(func) = LUA_T_CMARK;
@@ -290,7 +290,7 @@ static void do_call (StkId base, int nResults)
290 } 290 }
291 else { /* func is not a function */ 291 else { /* func is not a function */
292 /* Check the fallback for invalid functions */ 292 /* Check the fallback for invalid functions */
293 Object *im = luaI_getimbyObj(func, IM_FUNCTION); 293 TObject *im = luaI_getimbyObj(func, IM_FUNCTION);
294 if (ttype(im) == LUA_T_NIL) 294 if (ttype(im) == LUA_T_NIL)
295 lua_error("call expression not a function"); 295 lua_error("call expression not a function");
296 open_stack((top-stack)-(base-1)); 296 open_stack((top-stack)-(base-1));
@@ -317,9 +317,9 @@ static void do_call (StkId base, int nResults)
317static void pushsubscript (void) 317static void pushsubscript (void)
318{ 318{
319 int tg = luaI_tag(top-2); 319 int tg = luaI_tag(top-2);
320 Object *im = luaI_getim(tg, IM_GETTABLE); 320 TObject *im = luaI_getim(tg, IM_GETTABLE);
321 if (ttype(top-2) == LUA_T_ARRAY && ttype(im) == LUA_T_NIL) { 321 if (ttype(top-2) == LUA_T_ARRAY && ttype(im) == LUA_T_NIL) {
322 Object *h = lua_hashget(avalue(top-2), top-1); 322 TObject *h = lua_hashget(avalue(top-2), top-1);
323 if (h != NULL && ttype(h) != LUA_T_NIL) { 323 if (h != NULL && ttype(h) != LUA_T_NIL) {
324 --top; 324 --top;
325 *(top-1) = *h; 325 *(top-1) = *h;
@@ -346,7 +346,7 @@ lua_Object lua_basicindex (void)
346 if (ttype(top-2) != LUA_T_ARRAY) 346 if (ttype(top-2) != LUA_T_ARRAY)
347 lua_error("indexed expression not a table in basic indexing"); 347 lua_error("indexed expression not a table in basic indexing");
348 else { 348 else {
349 Object *h = lua_hashget(avalue(top-2), top-1); 349 TObject *h = lua_hashget(avalue(top-2), top-1);
350 --top; 350 --top;
351 if (h != NULL) 351 if (h != NULL)
352 *(top-1) = *h; 352 *(top-1) = *h;
@@ -364,11 +364,11 @@ lua_Object lua_basicindex (void)
364** mode = 1: normal store (with internal methods) 364** mode = 1: normal store (with internal methods)
365** mode = 2: "deep stack" store (with internal methods) 365** mode = 2: "deep stack" store (with internal methods)
366*/ 366*/
367static void storesubscript (Object *t, int mode) 367static void storesubscript (TObject *t, int mode)
368{ 368{
369 Object *im = (mode == 0) ? NULL : luaI_getimbyObj(t, IM_SETTABLE); 369 TObject *im = (mode == 0) ? NULL : luaI_getimbyObj(t, IM_SETTABLE);
370 if (ttype(t) == LUA_T_ARRAY && (im == NULL || ttype(im) == LUA_T_NIL)) { 370 if (ttype(t) == LUA_T_ARRAY && (im == NULL || ttype(im) == LUA_T_NIL)) {
371 Object *h = lua_hashdefine(avalue(t), t+1); 371 TObject *h = lua_hashdefine(avalue(t), t+1);
372 *h = *(top-1); 372 *h = *(top-1);
373 top -= (mode == 2) ? 1 : 3; 373 top -= (mode == 2) ? 1 : 3;
374 } 374 }
@@ -394,7 +394,7 @@ static void getglobal (Word n)
394 *top = lua_table[n].object; 394 *top = lua_table[n].object;
395 incr_top; 395 incr_top;
396 if (ttype(top-1) == LUA_T_NIL) { /* check i.m. */ 396 if (ttype(top-1) == LUA_T_NIL) { /* check i.m. */
397 Object *im = luaI_getgim(GIM_GETGLOBAL); 397 TObject *im = luaI_getgim(GIM_GETGLOBAL);
398 if (ttype(im) != LUA_T_NIL) { 398 if (ttype(im) != LUA_T_NIL) {
399 ttype(top-1) = LUA_T_STRING; 399 ttype(top-1) = LUA_T_STRING;
400 tsvalue(top-1) = lua_table[n].varname; 400 tsvalue(top-1) = lua_table[n].varname;
@@ -406,9 +406,9 @@ static void getglobal (Word n)
406/* 406/*
407** Traverse all objects on stack 407** Traverse all objects on stack
408*/ 408*/
409void lua_travstack (int (*fn)(Object *)) 409void lua_travstack (int (*fn)(TObject *))
410{ 410{
411 Object *o; 411 TObject *o;
412 for (o = top-1; o >= stack; o--) 412 for (o = top-1; o >= stack; o--)
413 fn (o); 413 fn (o);
414} 414}
@@ -420,7 +420,7 @@ void lua_travstack (int (*fn)(Object *))
420 420
421static void lua_message (char *s) 421static void lua_message (char *s)
422{ 422{
423 Object *im = luaI_getgim(GIM_ERROR); 423 TObject *im = luaI_getgim(GIM_ERROR);
424 if (ttype(im) == LUA_T_NIL) 424 if (ttype(im) == LUA_T_NIL)
425 fprintf(stderr, "lua: %s\n", s); 425 fprintf(stderr, "lua: %s\n", s);
426 else { 426 else {
@@ -458,14 +458,14 @@ lua_Function lua_stackedfunction (int level)
458 458
459int lua_currentline (lua_Function func) 459int lua_currentline (lua_Function func)
460{ 460{
461 Object *f = Address(func); 461 TObject *f = Address(func);
462 return (f+1 < top && (f+1)->ttype == LUA_T_LINE) ? (f+1)->value.i : -1; 462 return (f+1 < top && (f+1)->ttype == LUA_T_LINE) ? (f+1)->value.i : -1;
463} 463}
464 464
465 465
466lua_Object lua_getlocal (lua_Function func, int local_number, char **name) 466lua_Object lua_getlocal (lua_Function func, int local_number, char **name)
467{ 467{
468 Object *f = luaI_Address(func); 468 TObject *f = luaI_Address(func);
469 *name = luaI_getlocalname(f->value.tf, local_number, lua_currentline(func)); 469 *name = luaI_getlocalname(f->value.tf, local_number, lua_currentline(func));
470 if (*name) 470 if (*name)
471 { 471 {
@@ -479,7 +479,7 @@ lua_Object lua_getlocal (lua_Function func, int local_number, char **name)
479 479
480int lua_setlocal (lua_Function func, int local_number) 480int lua_setlocal (lua_Function func, int local_number)
481{ 481{
482 Object *f = Address(func); 482 TObject *f = Address(func);
483 char *name = luaI_getlocalname(f->value.tf, local_number, lua_currentline(func)); 483 char *name = luaI_getlocalname(f->value.tf, local_number, lua_currentline(func));
484 adjustC(1); 484 adjustC(1);
485 --top; 485 --top;
@@ -843,7 +843,7 @@ lua_CFunction lua_getcfunction (lua_Object object)
843 843
844lua_Object lua_getref (int ref) 844lua_Object lua_getref (int ref)
845{ 845{
846 Object *o = luaI_getref(ref); 846 TObject *o = luaI_getref(ref);
847 if (o == NULL) 847 if (o == NULL)
848 return LUA_NOOBJECT; 848 return LUA_NOOBJECT;
849 adjustC(0); 849 adjustC(0);
@@ -855,7 +855,7 @@ lua_Object lua_getref (int ref)
855 855
856void lua_pushref (int ref) 856void lua_pushref (int ref)
857{ 857{
858 Object *o = luaI_getref(ref); 858 TObject *o = luaI_getref(ref);
859 if (o == NULL) 859 if (o == NULL)
860 lua_error("access to invalid (possibly garbage collected) reference"); 860 lua_error("access to invalid (possibly garbage collected) reference");
861 luaI_pushobject(o); 861 luaI_pushobject(o);
@@ -970,7 +970,7 @@ void lua_pushusertag (void *u, int tag)
970/* 970/*
971** Push an object on the stack. 971** Push an object on the stack.
972*/ 972*/
973void luaI_pushobject (Object *o) 973void luaI_pushobject (TObject *o)
974{ 974{
975 *top = *o; 975 *top = *o;
976 incr_top; 976 incr_top;
@@ -995,9 +995,9 @@ int lua_tag (lua_Object o)
995} 995}
996 996
997 997
998void luaI_gcIM (Object *o) 998void luaI_gcIM (TObject *o)
999{ 999{
1000 Object *im = luaI_getimbyObj(o, IM_GC); 1000 TObject *im = luaI_getimbyObj(o, IM_GC);
1001 if (ttype(im) != LUA_T_NIL) { 1001 if (ttype(im) != LUA_T_NIL) {
1002 *top = *o; 1002 *top = *o;
1003 incr_top; 1003 incr_top;
@@ -1008,7 +1008,7 @@ void luaI_gcIM (Object *o)
1008 1008
1009static void call_arith (IMS event) 1009static void call_arith (IMS event)
1010{ 1010{
1011 Object *im = luaI_getimbyObj(top-2, event); /* try first operand */ 1011 TObject *im = luaI_getimbyObj(top-2, event); /* try first operand */
1012 if (ttype(im) == LUA_T_NIL) { 1012 if (ttype(im) == LUA_T_NIL) {
1013 im = luaI_getimbyObj(top-1, event); /* try second operand */ 1013 im = luaI_getimbyObj(top-1, event); /* try second operand */
1014 if (ttype(im) == LUA_T_NIL) { 1014 if (ttype(im) == LUA_T_NIL) {
@@ -1021,17 +1021,17 @@ static void call_arith (IMS event)
1021 callIM(im, 3, 1); 1021 callIM(im, 3, 1);
1022} 1022}
1023 1023
1024static void concim (Object *o) 1024static void concim (TObject *o)
1025{ 1025{
1026 Object *im = luaI_getimbyObj(o, IM_CONCAT); 1026 TObject *im = luaI_getimbyObj(o, IM_CONCAT);
1027 if (ttype(im) == LUA_T_NIL) 1027 if (ttype(im) == LUA_T_NIL)
1028 lua_error("unexpected type at conversion to string"); 1028 lua_error("unexpected type at conversion to string");
1029 callIM(im, 2, 1); 1029 callIM(im, 2, 1);
1030} 1030}
1031 1031
1032static void ordim (Object *o, IMS event) 1032static void ordim (TObject *o, IMS event)
1033{ 1033{
1034 Object *im = luaI_getimbyObj(o, event); 1034 TObject *im = luaI_getimbyObj(o, event);
1035 if (ttype(im) == LUA_T_NIL) 1035 if (ttype(im) == LUA_T_NIL)
1036 lua_error("unexpected type at comparison"); 1036 lua_error("unexpected type at comparison");
1037 lua_pushstring(luaI_eventname[event]); 1037 lua_pushstring(luaI_eventname[event]);
@@ -1041,8 +1041,8 @@ static void ordim (Object *o, IMS event)
1041static void comparison (lua_Type ttype_less, lua_Type ttype_equal, 1041static void comparison (lua_Type ttype_less, lua_Type ttype_equal,
1042 lua_Type ttype_great, IMS op) 1042 lua_Type ttype_great, IMS op)
1043{ 1043{
1044 Object *l = top-2; 1044 TObject *l = top-2;
1045 Object *r = top-1; 1045 TObject *r = top-1;
1046 int result; 1046 int result;
1047 if (ttype(l) == LUA_T_NUMBER && ttype(r) == LUA_T_NUMBER) 1047 if (ttype(l) == LUA_T_NUMBER && ttype(r) == LUA_T_NUMBER)
1048 result = (nvalue(l) < nvalue(r)) ? -1 : (nvalue(l) == nvalue(r)) ? 0 : 1; 1048 result = (nvalue(l) < nvalue(r)) ? -1 : (nvalue(l) == nvalue(r)) ? 0 : 1;
@@ -1065,21 +1065,21 @@ static void comparison (lua_Type ttype_less, lua_Type ttype_equal,
1065 1065
1066static void adjust_varargs (StkId first_extra_arg) 1066static void adjust_varargs (StkId first_extra_arg)
1067{ 1067{
1068 Object arg; 1068 TObject arg;
1069 Object *firstelem = stack+first_extra_arg; 1069 TObject *firstelem = stack+first_extra_arg;
1070 int nvararg = top-firstelem; 1070 int nvararg = top-firstelem;
1071 int i; 1071 int i;
1072 if (nvararg < 0) nvararg = 0; 1072 if (nvararg < 0) nvararg = 0;
1073 avalue(&arg) = lua_createarray(nvararg+1); /* +1 for field 'n' */ 1073 avalue(&arg) = lua_createarray(nvararg+1); /* +1 for field 'n' */
1074 ttype(&arg) = LUA_T_ARRAY; 1074 ttype(&arg) = LUA_T_ARRAY;
1075 for (i=0; i<nvararg; i++) { 1075 for (i=0; i<nvararg; i++) {
1076 Object index; 1076 TObject index;
1077 ttype(&index) = LUA_T_NUMBER; 1077 ttype(&index) = LUA_T_NUMBER;
1078 nvalue(&index) = i+1; 1078 nvalue(&index) = i+1;
1079 *(lua_hashdefine(avalue(&arg), &index)) = *(firstelem+i); 1079 *(lua_hashdefine(avalue(&arg), &index)) = *(firstelem+i);
1080 } 1080 }
1081 /* store counter in field "n" */ { 1081 /* store counter in field "n" */ {
1082 Object index, extra; 1082 TObject index, extra;
1083 ttype(&index) = LUA_T_STRING; 1083 ttype(&index) = LUA_T_STRING;
1084 tsvalue(&index) = lua_createstring("n"); 1084 tsvalue(&index) = lua_createstring("n");
1085 ttype(&extra) = LUA_T_NUMBER; 1085 ttype(&extra) = LUA_T_NUMBER;
@@ -1177,7 +1177,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1177 1177
1178 case PUSHSELF: 1178 case PUSHSELF:
1179 { 1179 {
1180 Object receiver = *(top-1); 1180 TObject receiver = *(top-1);
1181 Word w; 1181 Word w;
1182 get_word(w,pc); 1182 get_word(w,pc);
1183 ttype(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w]; 1183 ttype(top) = LUA_T_STRING; tsvalue(top) = lua_constant[w];
@@ -1219,7 +1219,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1219 case STORELIST: 1219 case STORELIST:
1220 { 1220 {
1221 int m, n; 1221 int m, n;
1222 Object *arr; 1222 TObject *arr;
1223 if (opcode == STORELIST0) m = 0; 1223 if (opcode == STORELIST0) m = 0;
1224 else m = *(pc++) * FIELDS_PER_FLUSH; 1224 else m = *(pc++) * FIELDS_PER_FLUSH;
1225 n = *(pc++); 1225 n = *(pc++);
@@ -1237,7 +1237,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1237 case STORERECORD: /* opcode obsolete: supersed by STOREMAP */ 1237 case STORERECORD: /* opcode obsolete: supersed by STOREMAP */
1238 { 1238 {
1239 int n = *(pc++); 1239 int n = *(pc++);
1240 Object *arr = top-n-1; 1240 TObject *arr = top-n-1;
1241 while (n) 1241 while (n)
1242 { 1242 {
1243 Word w; 1243 Word w;
@@ -1252,7 +1252,7 @@ static StkId lua_execute (Byte *pc, StkId base)
1252 1252
1253 case STOREMAP: { 1253 case STOREMAP: {
1254 int n = *(pc++); 1254 int n = *(pc++);
1255 Object *arr = top-(2*n)-1; 1255 TObject *arr = top-(2*n)-1;
1256 while (n--) { 1256 while (n--) {
1257 *(lua_hashdefine (avalue(arr), top-2)) = *(top-1); 1257 *(lua_hashdefine (avalue(arr), top-2)) = *(top-1);
1258 top-=2; 1258 top-=2;
@@ -1309,8 +1309,8 @@ static StkId lua_execute (Byte *pc, StkId base)
1309 1309
1310 case ADDOP: 1310 case ADDOP:
1311 { 1311 {
1312 Object *l = top-2; 1312 TObject *l = top-2;
1313 Object *r = top-1; 1313 TObject *r = top-1;
1314 if (tonumber(r) || tonumber(l)) 1314 if (tonumber(r) || tonumber(l))
1315 call_arith(IM_ADD); 1315 call_arith(IM_ADD);
1316 else 1316 else
@@ -1323,8 +1323,8 @@ static StkId lua_execute (Byte *pc, StkId base)
1323 1323
1324 case SUBOP: 1324 case SUBOP:
1325 { 1325 {
1326 Object *l = top-2; 1326 TObject *l = top-2;
1327 Object *r = top-1; 1327 TObject *r = top-1;
1328 if (tonumber(r) || tonumber(l)) 1328 if (tonumber(r) || tonumber(l))
1329 call_arith(IM_SUB); 1329 call_arith(IM_SUB);
1330 else 1330 else
@@ -1337,8 +1337,8 @@ static StkId lua_execute (Byte *pc, StkId base)
1337 1337
1338 case MULTOP: 1338 case MULTOP:
1339 { 1339 {
1340 Object *l = top-2; 1340 TObject *l = top-2;
1341 Object *r = top-1; 1341 TObject *r = top-1;
1342 if (tonumber(r) || tonumber(l)) 1342 if (tonumber(r) || tonumber(l))
1343 call_arith(IM_MUL); 1343 call_arith(IM_MUL);
1344 else 1344 else
@@ -1351,8 +1351,8 @@ static StkId lua_execute (Byte *pc, StkId base)
1351 1351
1352 case DIVOP: 1352 case DIVOP:
1353 { 1353 {
1354 Object *l = top-2; 1354 TObject *l = top-2;
1355 Object *r = top-1; 1355 TObject *r = top-1;
1356 if (tonumber(r) || tonumber(l)) 1356 if (tonumber(r) || tonumber(l))
1357 call_arith(IM_DIV); 1357 call_arith(IM_DIV);
1358 else 1358 else
@@ -1368,8 +1368,8 @@ static StkId lua_execute (Byte *pc, StkId base)
1368 break; 1368 break;
1369 1369
1370 case CONCOP: { 1370 case CONCOP: {
1371 Object *l = top-2; 1371 TObject *l = top-2;
1372 Object *r = top-1; 1372 TObject *r = top-1;
1373 if (tostring(l)) /* first argument is not a string */ 1373 if (tostring(l)) /* first argument is not a string */
1374 concim(l); 1374 concim(l);
1375 else if (tostring(r)) /* second argument is not a string */ 1375 else if (tostring(r)) /* second argument is not a string */
diff --git a/opcode.h b/opcode.h
index d691233c..89490262 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.29 1997/03/19 19:41:10 roberto Exp roberto $ 3** $Id: opcode.h,v 3.30 1997/03/20 19:20:43 roberto Exp roberto $
4*/ 4*/
5 5
6#ifndef opcode_h 6#ifndef opcode_h
@@ -125,11 +125,11 @@ typedef union
125 int i; 125 int i;
126} Value; 126} Value;
127 127
128typedef struct Object 128typedef struct TObject
129{ 129{
130 lua_Type ttype; 130 lua_Type ttype;
131 Value value; 131 Value value;
132} Object; 132} TObject;
133 133
134 134
135/* Macros to access structure members */ 135/* Macros to access structure members */
@@ -159,10 +159,10 @@ typedef struct Object
159/* Exported functions */ 159/* Exported functions */
160void lua_parse (TFunc *tf); /* from "lua.stx" module */ 160void lua_parse (TFunc *tf); /* from "lua.stx" module */
161void luaI_codedebugline (int line); /* from "lua.stx" module */ 161void luaI_codedebugline (int line); /* from "lua.stx" module */
162void lua_travstack (int (*fn)(Object *)); 162void lua_travstack (int (*fn)(TObject *));
163Object *luaI_Address (lua_Object o); 163TObject *luaI_Address (lua_Object o);
164void luaI_pushobject (Object *o); 164void luaI_pushobject (TObject *o);
165void luaI_gcIM (Object *o); 165void luaI_gcIM (TObject *o);
166int luaI_dorun (TFunc *tf); 166int luaI_dorun (TFunc *tf);
167 167
168#endif 168#endif
diff --git a/table.c b/table.c
index 60c2cd42..cdcf4673 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.62 1997/03/21 21:39:57 roberto Exp roberto $"; 6char *rcs_table="$Id: table.c,v 2.63 1997/03/26 22:22:41 roberto Exp roberto $";
7 7
8#include "mem.h" 8#include "mem.h"
9#include "opcode.h" 9#include "opcode.h"
@@ -113,7 +113,7 @@ TaggedString *luaI_createfixedstring (char *name)
113/* 113/*
114** Traverse symbol table objects 114** Traverse symbol table objects
115*/ 115*/
116static char *lua_travsymbol (int (*fn)(Object *)) 116static char *lua_travsymbol (int (*fn)(TObject *))
117{ 117{
118 Word i; 118 Word i;
119 for (i=0; i<lua_ntable; i++) 119 for (i=0; i<lua_ntable; i++)
@@ -126,7 +126,7 @@ static char *lua_travsymbol (int (*fn)(Object *))
126/* 126/*
127** Mark an object if it is a string or a unmarked array. 127** Mark an object if it is a string or a unmarked array.
128*/ 128*/
129int lua_markobject (Object *o) 129int lua_markobject (TObject *o)
130{/* if already marked, does not change mark value */ 130{/* if already marked, does not change mark value */
131 if (ttype(o) == LUA_T_USERDATA || 131 if (ttype(o) == LUA_T_USERDATA ||
132 (ttype(o) == LUA_T_STRING && !tsvalue(o)->marked)) 132 (ttype(o) == LUA_T_STRING && !tsvalue(o)->marked))
@@ -142,7 +142,7 @@ int lua_markobject (Object *o)
142/* 142/*
143* returns 0 if the object is going to be (garbage) collected 143* returns 0 if the object is going to be (garbage) collected
144*/ 144*/
145int luaI_ismarked (Object *o) 145int luaI_ismarked (TObject *o)
146{ 146{
147 switch (o->ttype) 147 switch (o->ttype)
148 { 148 {
@@ -160,7 +160,7 @@ int luaI_ismarked (Object *o)
160 160
161static void call_nilIM (void) 161static void call_nilIM (void)
162{ /* signals end of garbage collection */ 162{ /* signals end of garbage collection */
163 Object t; 163 TObject t;
164 ttype(&t) = LUA_T_NIL; 164 ttype(&t) = LUA_T_NIL;
165 luaI_gcIM(&t); /* end of list */ 165 luaI_gcIM(&t); /* end of list */
166} 166}
@@ -227,8 +227,8 @@ void luaI_nextvar (void)
227} 227}
228 228
229 229
230static Object *functofind; 230static TObject *functofind;
231static int checkfunc (Object *o) 231static int checkfunc (TObject *o)
232{ 232{
233 if (o->ttype == LUA_T_FUNCTION) 233 if (o->ttype == LUA_T_FUNCTION)
234 return 234 return
diff --git a/table.h b/table.h
index 42d44c07..d03a5607 100644
--- a/table.h
+++ b/table.h
@@ -1,7 +1,7 @@
1/* 1/*
2** Module to control static tables 2** Module to control static tables
3** TeCGraf - PUC-Rio 3** TeCGraf - PUC-Rio
4** $Id: table.h,v 2.21 1996/04/22 18:00:37 roberto Exp roberto $ 4** $Id: table.h,v 2.22 1997/02/26 17:38:41 roberto Unstable roberto $
5*/ 5*/
6 6
7#ifndef table_h 7#ifndef table_h
@@ -12,7 +12,7 @@
12 12
13typedef struct 13typedef struct
14{ 14{
15 Object object; 15 TObject object;
16 TaggedString *varname; 16 TaggedString *varname;
17} Symbol; 17} Symbol;
18 18
@@ -30,8 +30,8 @@ Word luaI_findconstant (TaggedString *t);
30Word luaI_findconstantbyname (char *name); 30Word luaI_findconstantbyname (char *name);
31void luaI_nextvar (void); 31void luaI_nextvar (void);
32TaggedString *luaI_createfixedstring (char *str); 32TaggedString *luaI_createfixedstring (char *str);
33int lua_markobject (Object *o); 33int lua_markobject (TObject *o);
34int luaI_ismarked (Object *o); 34int luaI_ismarked (TObject *o);
35Long luaI_collectgarbage (void); 35Long luaI_collectgarbage (void);
36void lua_pack (void); 36void lua_pack (void);
37 37
diff --git a/tree.c b/tree.c
index 1afded62..c993e199 100644
--- a/tree.c
+++ b/tree.c
@@ -3,7 +3,7 @@
3** TecCGraf - PUC-Rio 3** TecCGraf - PUC-Rio
4*/ 4*/
5 5
6char *rcs_tree="$Id: tree.c,v 1.21 1997/02/11 11:35:05 roberto Exp roberto $"; 6char *rcs_tree="$Id: tree.c,v 1.22 1997/03/19 19:41:10 roberto Exp roberto $";
7 7
8 8
9#include <string.h> 9#include <string.h>
@@ -125,7 +125,7 @@ TaggedString *lua_createstring (char *str)
125void luaI_strcallIM (void) 125void luaI_strcallIM (void)
126{ 126{
127 int i; 127 int i;
128 Object o; 128 TObject o;
129 ttype(&o) = LUA_T_USERDATA; 129 ttype(&o) = LUA_T_USERDATA;
130 for (i=0; i<NUM_HASHS; i++) { 130 for (i=0; i<NUM_HASHS; i++) {
131 stringtable *tb = &string_root[i]; 131 stringtable *tb = &string_root[i];