diff options
Diffstat (limited to 'ltests.c')
-rw-r--r-- | ltests.c | 90 |
1 files changed, 45 insertions, 45 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: ltests.c,v 1.155 2003/03/11 12:24:34 roberto Exp roberto $ | 2 | ** $Id: ltests.c,v 1.156 2003/03/19 21:14:53 roberto Exp roberto $ |
3 | ** Internal Module for Debugging of the Lua Implementation | 3 | ** Internal Module for Debugging of the Lua Implementation |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -36,6 +36,9 @@ | |||
36 | #ifdef LUA_DEBUG | 36 | #ifdef LUA_DEBUG |
37 | 37 | ||
38 | 38 | ||
39 | #define lua_pushintegral(L,i) lua_pushnumber(L, cast(lua_Number, (i))) | ||
40 | |||
41 | |||
39 | static lua_State *lua_state = NULL; | 42 | static lua_State *lua_state = NULL; |
40 | 43 | ||
41 | int islocked = 0; | 44 | int islocked = 0; |
@@ -46,7 +49,7 @@ int islocked = 0; | |||
46 | 49 | ||
47 | static void setnameval (lua_State *L, const char *name, int val) { | 50 | static void setnameval (lua_State *L, const char *name, int val) { |
48 | lua_pushstring(L, name); | 51 | lua_pushstring(L, name); |
49 | lua_pushnumber(L, val); | 52 | lua_pushintegral(L, val); |
50 | lua_settable(L, -3); | 53 | lua_settable(L, -3); |
51 | } | 54 | } |
52 | 55 | ||
@@ -196,7 +199,7 @@ static int listcode (lua_State *L) { | |||
196 | setnameval(L, "numparams", p->numparams); | 199 | setnameval(L, "numparams", p->numparams); |
197 | for (pc=0; pc<p->sizecode; pc++) { | 200 | for (pc=0; pc<p->sizecode; pc++) { |
198 | char buff[100]; | 201 | char buff[100]; |
199 | lua_pushnumber(L, pc+1); | 202 | lua_pushintegral(L, pc+1); |
200 | lua_pushstring(L, buildop(p, pc, buff)); | 203 | lua_pushstring(L, buildop(p, pc, buff)); |
201 | lua_settable(L, -3); | 204 | lua_settable(L, -3); |
202 | } | 205 | } |
@@ -212,7 +215,7 @@ static int listk (lua_State *L) { | |||
212 | p = clvalue(func_at(L, 1))->l.p; | 215 | p = clvalue(func_at(L, 1))->l.p; |
213 | lua_newtable(L); | 216 | lua_newtable(L); |
214 | for (i=0; i<p->sizek; i++) { | 217 | for (i=0; i<p->sizek; i++) { |
215 | lua_pushnumber(L, i+1); | 218 | lua_pushintegral(L, i+1); |
216 | luaA_pushobject(L, p->k+i); | 219 | luaA_pushobject(L, p->k+i); |
217 | lua_settable(L, -3); | 220 | lua_settable(L, -3); |
218 | } | 221 | } |
@@ -252,9 +255,9 @@ static int get_limits (lua_State *L) { | |||
252 | 255 | ||
253 | static int mem_query (lua_State *L) { | 256 | static int mem_query (lua_State *L) { |
254 | if (lua_isnone(L, 1)) { | 257 | if (lua_isnone(L, 1)) { |
255 | lua_pushnumber(L, memdebug_total); | 258 | lua_pushintegral(L, memdebug_total); |
256 | lua_pushnumber(L, memdebug_numblocks); | 259 | lua_pushintegral(L, memdebug_numblocks); |
257 | lua_pushnumber(L, memdebug_maxmem); | 260 | lua_pushintegral(L, memdebug_maxmem); |
258 | return 3; | 261 | return 3; |
259 | } | 262 | } |
260 | else { | 263 | else { |
@@ -267,14 +270,14 @@ static int mem_query (lua_State *L) { | |||
267 | static int hash_query (lua_State *L) { | 270 | static int hash_query (lua_State *L) { |
268 | if (lua_isnone(L, 2)) { | 271 | if (lua_isnone(L, 2)) { |
269 | luaL_argcheck(L, lua_type(L, 1) == LUA_TSTRING, 1, "string expected"); | 272 | luaL_argcheck(L, lua_type(L, 1) == LUA_TSTRING, 1, "string expected"); |
270 | lua_pushnumber(L, tsvalue(func_at(L, 1))->tsv.hash); | 273 | lua_pushintegral(L, tsvalue(func_at(L, 1))->tsv.hash); |
271 | } | 274 | } |
272 | else { | 275 | else { |
273 | TObject *o = func_at(L, 1); | 276 | TObject *o = func_at(L, 1); |
274 | Table *t; | 277 | Table *t; |
275 | luaL_checktype(L, 2, LUA_TTABLE); | 278 | luaL_checktype(L, 2, LUA_TTABLE); |
276 | t = hvalue(func_at(L, 2)); | 279 | t = hvalue(func_at(L, 2)); |
277 | lua_pushnumber(L, luaH_mainposition(t, o) - t->node); | 280 | lua_pushintegral(L, luaH_mainposition(t, o) - t->node); |
278 | } | 281 | } |
279 | return 1; | 282 | return 1; |
280 | } | 283 | } |
@@ -282,11 +285,11 @@ static int hash_query (lua_State *L) { | |||
282 | 285 | ||
283 | static int stacklevel (lua_State *L) { | 286 | static int stacklevel (lua_State *L) { |
284 | unsigned long a = 0; | 287 | unsigned long a = 0; |
285 | lua_pushnumber(L, (int)(L->top - L->stack)); | 288 | lua_pushintegral(L, (int)(L->top - L->stack)); |
286 | lua_pushnumber(L, (int)(L->stack_last - L->stack)); | 289 | lua_pushintegral(L, (int)(L->stack_last - L->stack)); |
287 | lua_pushnumber(L, (int)(L->ci - L->base_ci)); | 290 | lua_pushintegral(L, (int)(L->ci - L->base_ci)); |
288 | lua_pushnumber(L, (int)(L->end_ci - L->base_ci)); | 291 | lua_pushintegral(L, (int)(L->end_ci - L->base_ci)); |
289 | lua_pushnumber(L, (unsigned long)&a); | 292 | lua_pushintegral(L, (unsigned long)&a); |
290 | return 5; | 293 | return 5; |
291 | } | 294 | } |
292 | 295 | ||
@@ -297,12 +300,12 @@ static int table_query (lua_State *L) { | |||
297 | luaL_checktype(L, 1, LUA_TTABLE); | 300 | luaL_checktype(L, 1, LUA_TTABLE); |
298 | t = hvalue(func_at(L, 1)); | 301 | t = hvalue(func_at(L, 1)); |
299 | if (i == -1) { | 302 | if (i == -1) { |
300 | lua_pushnumber(L, t->sizearray); | 303 | lua_pushintegral(L, t->sizearray); |
301 | lua_pushnumber(L, sizenode(t)); | 304 | lua_pushintegral(L, sizenode(t)); |
302 | lua_pushnumber(L, t->firstfree - t->node); | 305 | lua_pushintegral(L, t->firstfree - t->node); |
303 | } | 306 | } |
304 | else if (i < t->sizearray) { | 307 | else if (i < t->sizearray) { |
305 | lua_pushnumber(L, i); | 308 | lua_pushintegral(L, i); |
306 | luaA_pushobject(L, &t->array[i]); | 309 | luaA_pushobject(L, &t->array[i]); |
307 | lua_pushnil(L); | 310 | lua_pushnil(L); |
308 | } | 311 | } |
@@ -316,7 +319,7 @@ static int table_query (lua_State *L) { | |||
316 | lua_pushstring(L, "<undef>"); | 319 | lua_pushstring(L, "<undef>"); |
317 | luaA_pushobject(L, gval(gnode(t, i))); | 320 | luaA_pushobject(L, gval(gnode(t, i))); |
318 | if (t->node[i].next) | 321 | if (t->node[i].next) |
319 | lua_pushnumber(L, t->node[i].next - t->node); | 322 | lua_pushintegral(L, t->node[i].next - t->node); |
320 | else | 323 | else |
321 | lua_pushnil(L); | 324 | lua_pushnil(L); |
322 | } | 325 | } |
@@ -328,8 +331,8 @@ static int string_query (lua_State *L) { | |||
328 | stringtable *tb = &G(L)->strt; | 331 | stringtable *tb = &G(L)->strt; |
329 | int s = luaL_optint(L, 2, 0) - 1; | 332 | int s = luaL_optint(L, 2, 0) - 1; |
330 | if (s==-1) { | 333 | if (s==-1) { |
331 | lua_pushnumber(L ,tb->nuse); | 334 | lua_pushintegral(L ,tb->nuse); |
332 | lua_pushnumber(L ,tb->size); | 335 | lua_pushintegral(L ,tb->size); |
333 | return 2; | 336 | return 2; |
334 | } | 337 | } |
335 | else if (s < tb->size) { | 338 | else if (s < tb->size) { |
@@ -351,7 +354,7 @@ static int tref (lua_State *L) { | |||
351 | int lock = luaL_optint(L, 2, 1); | 354 | int lock = luaL_optint(L, 2, 1); |
352 | luaL_checkany(L, 1); | 355 | luaL_checkany(L, 1); |
353 | lua_pushvalue(L, 1); | 356 | lua_pushvalue(L, 1); |
354 | lua_pushnumber(L, lua_ref(L, lock)); | 357 | lua_pushintegral(L, lua_ref(L, lock)); |
355 | assert(lua_gettop(L) == level+1); /* +1 for result */ | 358 | assert(lua_gettop(L) == level+1); /* +1 for result */ |
356 | return 1; | 359 | return 1; |
357 | } | 360 | } |
@@ -417,7 +420,7 @@ static int pushuserdata (lua_State *L) { | |||
417 | 420 | ||
418 | 421 | ||
419 | static int udataval (lua_State *L) { | 422 | static int udataval (lua_State *L) { |
420 | lua_pushnumber(L, cast(int, lua_touserdata(L, 1))); | 423 | lua_pushintegral(L, cast(int, lua_touserdata(L, 1))); |
421 | return 1; | 424 | return 1; |
422 | } | 425 | } |
423 | 426 | ||
@@ -429,7 +432,7 @@ static int doonnewstack (lua_State *L) { | |||
429 | int status = luaL_loadbuffer(L1, s, l, s); | 432 | int status = luaL_loadbuffer(L1, s, l, s); |
430 | if (status == 0) | 433 | if (status == 0) |
431 | status = lua_pcall(L1, 0, 0, 0); | 434 | status = lua_pcall(L1, 0, 0, 0); |
432 | lua_pushnumber(L, status); | 435 | lua_pushintegral(L, status); |
433 | return 1; | 436 | return 1; |
434 | } | 437 | } |
435 | 438 | ||
@@ -450,7 +453,7 @@ static int newstate (lua_State *L) { | |||
450 | lua_State *L1 = lua_open(); | 453 | lua_State *L1 = lua_open(); |
451 | if (L1) { | 454 | if (L1) { |
452 | lua_userstateopen(L1); /* init lock */ | 455 | lua_userstateopen(L1); /* init lock */ |
453 | lua_pushnumber(L, (unsigned long)L1); | 456 | lua_pushintegral(L, (unsigned long)L1); |
454 | } | 457 | } |
455 | else | 458 | else |
456 | lua_pushnil(L); | 459 | lua_pushnil(L); |
@@ -493,7 +496,7 @@ static int doremote (lua_State *L) { | |||
493 | status = lua_pcall(L1, 0, LUA_MULTRET, 0); | 496 | status = lua_pcall(L1, 0, LUA_MULTRET, 0); |
494 | if (status != 0) { | 497 | if (status != 0) { |
495 | lua_pushnil(L); | 498 | lua_pushnil(L); |
496 | lua_pushnumber(L, status); | 499 | lua_pushintegral(L, status); |
497 | lua_pushstring(L, lua_tostring(L1, -1)); | 500 | lua_pushstring(L, lua_tostring(L1, -1)); |
498 | return 3; | 501 | return 3; |
499 | } | 502 | } |
@@ -508,14 +511,14 @@ static int doremote (lua_State *L) { | |||
508 | 511 | ||
509 | 512 | ||
510 | static int log2_aux (lua_State *L) { | 513 | static int log2_aux (lua_State *L) { |
511 | lua_pushnumber(L, luaO_log2(luaL_checkint(L, 1))); | 514 | lua_pushintegral(L, luaO_log2(luaL_checkint(L, 1))); |
512 | return 1; | 515 | return 1; |
513 | } | 516 | } |
514 | 517 | ||
515 | static int int2fb_aux (lua_State *L) { | 518 | static int int2fb_aux (lua_State *L) { |
516 | int b = luaO_int2fb(luaL_checkint(L, 1)); | 519 | int b = luaO_int2fb(luaL_checkint(L, 1)); |
517 | lua_pushnumber(L, b); | 520 | lua_pushintegral(L, b); |
518 | lua_pushnumber(L, fb2int(b)); | 521 | lua_pushintegral(L, fb2int(b)); |
519 | return 2; | 522 | return 2; |
520 | } | 523 | } |
521 | 524 | ||
@@ -585,31 +588,31 @@ static int testC (lua_State *L) { | |||
585 | const char *inst = getname; | 588 | const char *inst = getname; |
586 | if EQ("") return 0; | 589 | if EQ("") return 0; |
587 | else if EQ("isnumber") { | 590 | else if EQ("isnumber") { |
588 | lua_pushnumber(L, lua_isnumber(L, getnum)); | 591 | lua_pushintegral(L, lua_isnumber(L, getnum)); |
589 | } | 592 | } |
590 | else if EQ("isstring") { | 593 | else if EQ("isstring") { |
591 | lua_pushnumber(L, lua_isstring(L, getnum)); | 594 | lua_pushintegral(L, lua_isstring(L, getnum)); |
592 | } | 595 | } |
593 | else if EQ("istable") { | 596 | else if EQ("istable") { |
594 | lua_pushnumber(L, lua_istable(L, getnum)); | 597 | lua_pushintegral(L, lua_istable(L, getnum)); |
595 | } | 598 | } |
596 | else if EQ("iscfunction") { | 599 | else if EQ("iscfunction") { |
597 | lua_pushnumber(L, lua_iscfunction(L, getnum)); | 600 | lua_pushintegral(L, lua_iscfunction(L, getnum)); |
598 | } | 601 | } |
599 | else if EQ("isfunction") { | 602 | else if EQ("isfunction") { |
600 | lua_pushnumber(L, lua_isfunction(L, getnum)); | 603 | lua_pushintegral(L, lua_isfunction(L, getnum)); |
601 | } | 604 | } |
602 | else if EQ("isuserdata") { | 605 | else if EQ("isuserdata") { |
603 | lua_pushnumber(L, lua_isuserdata(L, getnum)); | 606 | lua_pushintegral(L, lua_isuserdata(L, getnum)); |
604 | } | 607 | } |
605 | else if EQ("isudataval") { | 608 | else if EQ("isudataval") { |
606 | lua_pushnumber(L, lua_islightuserdata(L, getnum)); | 609 | lua_pushintegral(L, lua_islightuserdata(L, getnum)); |
607 | } | 610 | } |
608 | else if EQ("isnil") { | 611 | else if EQ("isnil") { |
609 | lua_pushnumber(L, lua_isnil(L, getnum)); | 612 | lua_pushintegral(L, lua_isnil(L, getnum)); |
610 | } | 613 | } |
611 | else if EQ("isnull") { | 614 | else if EQ("isnull") { |
612 | lua_pushnumber(L, lua_isnone(L, getnum)); | 615 | lua_pushintegral(L, lua_isnone(L, getnum)); |
613 | } | 616 | } |
614 | else if EQ("tonumber") { | 617 | else if EQ("tonumber") { |
615 | lua_pushnumber(L, lua_tonumber(L, getnum)); | 618 | lua_pushnumber(L, lua_tonumber(L, getnum)); |
@@ -618,11 +621,8 @@ static int testC (lua_State *L) { | |||
618 | const char *s = lua_tostring(L, getnum); | 621 | const char *s = lua_tostring(L, getnum); |
619 | lua_pushstring(L, s); | 622 | lua_pushstring(L, s); |
620 | } | 623 | } |
621 | else if EQ("tonumber") { | ||
622 | lua_pushnumber(L, lua_tonumber(L, getnum)); | ||
623 | } | ||
624 | else if EQ("strlen") { | 624 | else if EQ("strlen") { |
625 | lua_pushnumber(L, lua_strlen(L, getnum)); | 625 | lua_pushintegral(L, lua_strlen(L, getnum)); |
626 | } | 626 | } |
627 | else if EQ("tocfunction") { | 627 | else if EQ("tocfunction") { |
628 | lua_pushcfunction(L, lua_tocfunction(L, getnum)); | 628 | lua_pushcfunction(L, lua_tocfunction(L, getnum)); |
@@ -631,7 +631,7 @@ static int testC (lua_State *L) { | |||
631 | return getnum; | 631 | return getnum; |
632 | } | 632 | } |
633 | else if EQ("gettop") { | 633 | else if EQ("gettop") { |
634 | lua_pushnumber(L, lua_gettop(L)); | 634 | lua_pushintegral(L, lua_gettop(L)); |
635 | } | 635 | } |
636 | else if EQ("settop") { | 636 | else if EQ("settop") { |
637 | lua_settop(L, getnum); | 637 | lua_settop(L, getnum); |
@@ -640,7 +640,7 @@ static int testC (lua_State *L) { | |||
640 | lua_pop(L, getnum); | 640 | lua_pop(L, getnum); |
641 | } | 641 | } |
642 | else if EQ("pushnum") { | 642 | else if EQ("pushnum") { |
643 | lua_pushnumber(L, getnum); | 643 | lua_pushintegral(L, getnum); |
644 | } | 644 | } |
645 | else if EQ("pushnil") { | 645 | else if EQ("pushnil") { |
646 | lua_pushnil(L); | 646 | lua_pushnil(L); |
@@ -649,7 +649,7 @@ static int testC (lua_State *L) { | |||
649 | lua_pushboolean(L, getnum); | 649 | lua_pushboolean(L, getnum); |
650 | } | 650 | } |
651 | else if EQ("tobool") { | 651 | else if EQ("tobool") { |
652 | lua_pushnumber(L, lua_toboolean(L, getnum)); | 652 | lua_pushintegral(L, lua_toboolean(L, getnum)); |
653 | } | 653 | } |
654 | else if EQ("pushvalue") { | 654 | else if EQ("pushvalue") { |
655 | lua_pushvalue(L, getnum); | 655 | lua_pushvalue(L, getnum); |