diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2003-10-07 17:13:41 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2003-10-07 17:13:41 -0300 |
| commit | f04fe526cd9de3e5460b614b2ff06268ad51872d (patch) | |
| tree | 9e9fd4fc0bae4858d74c04a22d8ce5748191d5a9 /ltests.c | |
| parent | 21947deddc5976536665cd2397d7d5c9e6bd7e48 (diff) | |
| download | lua-f04fe526cd9de3e5460b614b2ff06268ad51872d.tar.gz lua-f04fe526cd9de3e5460b614b2ff06268ad51872d.tar.bz2 lua-f04fe526cd9de3e5460b614b2ff06268ad51872d.zip | |
new functions `lua_tointeger' and lua_pushinteger'
Diffstat (limited to 'ltests.c')
| -rw-r--r-- | ltests.c | 89 |
1 files changed, 43 insertions, 46 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: ltests.c,v 1.163 2003/07/29 19:26:34 roberto Exp roberto $ | 2 | ** $Id: ltests.c,v 1.164 2003/10/02 20:31:17 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,9 +36,6 @@ | |||
| 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 | |||
| 42 | static lua_State *lua_state = NULL; | 39 | static lua_State *lua_state = NULL; |
| 43 | 40 | ||
| 44 | int islocked = 0; | 41 | int islocked = 0; |
| @@ -49,7 +46,7 @@ int islocked = 0; | |||
| 49 | 46 | ||
| 50 | static void setnameval (lua_State *L, const char *name, int val) { | 47 | static void setnameval (lua_State *L, const char *name, int val) { |
| 51 | lua_pushstring(L, name); | 48 | lua_pushstring(L, name); |
| 52 | lua_pushintegral(L, val); | 49 | lua_pushinteger(L, val); |
| 53 | lua_settable(L, -3); | 50 | lua_settable(L, -3); |
| 54 | } | 51 | } |
| 55 | 52 | ||
| @@ -196,7 +193,7 @@ static int listcode (lua_State *L) { | |||
| 196 | setnameval(L, "numparams", p->numparams); | 193 | setnameval(L, "numparams", p->numparams); |
| 197 | for (pc=0; pc<p->sizecode; pc++) { | 194 | for (pc=0; pc<p->sizecode; pc++) { |
| 198 | char buff[100]; | 195 | char buff[100]; |
| 199 | lua_pushintegral(L, pc+1); | 196 | lua_pushinteger(L, pc+1); |
| 200 | lua_pushstring(L, buildop(p, pc, buff)); | 197 | lua_pushstring(L, buildop(p, pc, buff)); |
| 201 | lua_settable(L, -3); | 198 | lua_settable(L, -3); |
| 202 | } | 199 | } |
| @@ -212,7 +209,7 @@ static int listk (lua_State *L) { | |||
| 212 | p = clvalue(func_at(L, 1))->l.p; | 209 | p = clvalue(func_at(L, 1))->l.p; |
| 213 | lua_newtable(L); | 210 | lua_newtable(L); |
| 214 | for (i=0; i<p->sizek; i++) { | 211 | for (i=0; i<p->sizek; i++) { |
| 215 | lua_pushintegral(L, i+1); | 212 | lua_pushinteger(L, i+1); |
| 216 | luaA_pushobject(L, p->k+i); | 213 | luaA_pushobject(L, p->k+i); |
| 217 | lua_settable(L, -3); | 214 | lua_settable(L, -3); |
| 218 | } | 215 | } |
| @@ -257,9 +254,9 @@ static int setgcthreshold (lua_State *L) { | |||
| 257 | 254 | ||
| 258 | static int mem_query (lua_State *L) { | 255 | static int mem_query (lua_State *L) { |
| 259 | if (lua_isnone(L, 1)) { | 256 | if (lua_isnone(L, 1)) { |
| 260 | lua_pushintegral(L, memcontrol.total); | 257 | lua_pushinteger(L, memcontrol.total); |
| 261 | lua_pushintegral(L, memcontrol.numblocks); | 258 | lua_pushinteger(L, memcontrol.numblocks); |
| 262 | lua_pushintegral(L, memcontrol.maxmem); | 259 | lua_pushinteger(L, memcontrol.maxmem); |
| 263 | return 3; | 260 | return 3; |
| 264 | } | 261 | } |
| 265 | else { | 262 | else { |
| @@ -272,14 +269,14 @@ static int mem_query (lua_State *L) { | |||
| 272 | static int hash_query (lua_State *L) { | 269 | static int hash_query (lua_State *L) { |
| 273 | if (lua_isnone(L, 2)) { | 270 | if (lua_isnone(L, 2)) { |
| 274 | luaL_argcheck(L, lua_type(L, 1) == LUA_TSTRING, 1, "string expected"); | 271 | luaL_argcheck(L, lua_type(L, 1) == LUA_TSTRING, 1, "string expected"); |
| 275 | lua_pushintegral(L, tsvalue(func_at(L, 1))->tsv.hash); | 272 | lua_pushinteger(L, tsvalue(func_at(L, 1))->tsv.hash); |
| 276 | } | 273 | } |
| 277 | else { | 274 | else { |
| 278 | TObject *o = func_at(L, 1); | 275 | TObject *o = func_at(L, 1); |
| 279 | Table *t; | 276 | Table *t; |
| 280 | luaL_checktype(L, 2, LUA_TTABLE); | 277 | luaL_checktype(L, 2, LUA_TTABLE); |
| 281 | t = hvalue(func_at(L, 2)); | 278 | t = hvalue(func_at(L, 2)); |
| 282 | lua_pushintegral(L, luaH_mainposition(t, o) - t->node); | 279 | lua_pushinteger(L, luaH_mainposition(t, o) - t->node); |
| 283 | } | 280 | } |
| 284 | return 1; | 281 | return 1; |
| 285 | } | 282 | } |
| @@ -287,11 +284,11 @@ static int hash_query (lua_State *L) { | |||
| 287 | 284 | ||
| 288 | static int stacklevel (lua_State *L) { | 285 | static int stacklevel (lua_State *L) { |
| 289 | unsigned long a = 0; | 286 | unsigned long a = 0; |
| 290 | lua_pushintegral(L, (int)(L->top - L->stack)); | 287 | lua_pushinteger(L, (L->top - L->stack)); |
| 291 | lua_pushintegral(L, (int)(L->stack_last - L->stack)); | 288 | lua_pushinteger(L, (L->stack_last - L->stack)); |
| 292 | lua_pushintegral(L, (int)(L->ci - L->base_ci)); | 289 | lua_pushinteger(L, (L->ci - L->base_ci)); |
| 293 | lua_pushintegral(L, (int)(L->end_ci - L->base_ci)); | 290 | lua_pushinteger(L, (L->end_ci - L->base_ci)); |
| 294 | lua_pushintegral(L, (unsigned long)&a); | 291 | lua_pushinteger(L, (unsigned long)&a); |
| 295 | return 5; | 292 | return 5; |
| 296 | } | 293 | } |
| 297 | 294 | ||
| @@ -302,12 +299,12 @@ static int table_query (lua_State *L) { | |||
| 302 | luaL_checktype(L, 1, LUA_TTABLE); | 299 | luaL_checktype(L, 1, LUA_TTABLE); |
| 303 | t = hvalue(func_at(L, 1)); | 300 | t = hvalue(func_at(L, 1)); |
| 304 | if (i == -1) { | 301 | if (i == -1) { |
| 305 | lua_pushintegral(L, t->sizearray); | 302 | lua_pushinteger(L, t->sizearray); |
| 306 | lua_pushintegral(L, sizenode(t)); | 303 | lua_pushinteger(L, sizenode(t)); |
| 307 | lua_pushintegral(L, t->firstfree - t->node); | 304 | lua_pushinteger(L, t->firstfree - t->node); |
| 308 | } | 305 | } |
| 309 | else if (i < t->sizearray) { | 306 | else if (i < t->sizearray) { |
| 310 | lua_pushintegral(L, i); | 307 | lua_pushinteger(L, i); |
| 311 | luaA_pushobject(L, &t->array[i]); | 308 | luaA_pushobject(L, &t->array[i]); |
| 312 | lua_pushnil(L); | 309 | lua_pushnil(L); |
| 313 | } | 310 | } |
| @@ -321,7 +318,7 @@ static int table_query (lua_State *L) { | |||
| 321 | lua_pushliteral(L, "<undef>"); | 318 | lua_pushliteral(L, "<undef>"); |
| 322 | luaA_pushobject(L, gval(gnode(t, i))); | 319 | luaA_pushobject(L, gval(gnode(t, i))); |
| 323 | if (t->node[i].next) | 320 | if (t->node[i].next) |
| 324 | lua_pushintegral(L, t->node[i].next - t->node); | 321 | lua_pushinteger(L, t->node[i].next - t->node); |
| 325 | else | 322 | else |
| 326 | lua_pushnil(L); | 323 | lua_pushnil(L); |
| 327 | } | 324 | } |
| @@ -333,8 +330,8 @@ static int string_query (lua_State *L) { | |||
| 333 | stringtable *tb = &G(L)->strt; | 330 | stringtable *tb = &G(L)->strt; |
| 334 | int s = luaL_optint(L, 2, 0) - 1; | 331 | int s = luaL_optint(L, 2, 0) - 1; |
| 335 | if (s==-1) { | 332 | if (s==-1) { |
| 336 | lua_pushintegral(L ,tb->nuse); | 333 | lua_pushinteger(L ,tb->nuse); |
| 337 | lua_pushintegral(L ,tb->size); | 334 | lua_pushinteger(L ,tb->size); |
| 338 | return 2; | 335 | return 2; |
| 339 | } | 336 | } |
| 340 | else if (s < tb->size) { | 337 | else if (s < tb->size) { |
| @@ -356,7 +353,7 @@ static int tref (lua_State *L) { | |||
| 356 | int lock = luaL_optint(L, 2, 1); | 353 | int lock = luaL_optint(L, 2, 1); |
| 357 | luaL_checkany(L, 1); | 354 | luaL_checkany(L, 1); |
| 358 | lua_pushvalue(L, 1); | 355 | lua_pushvalue(L, 1); |
| 359 | lua_pushintegral(L, lua_ref(L, lock)); | 356 | lua_pushinteger(L, lua_ref(L, lock)); |
| 360 | assert(lua_gettop(L) == level+1); /* +1 for result */ | 357 | assert(lua_gettop(L) == level+1); /* +1 for result */ |
| 361 | return 1; | 358 | return 1; |
| 362 | } | 359 | } |
| @@ -422,7 +419,7 @@ static int pushuserdata (lua_State *L) { | |||
| 422 | 419 | ||
| 423 | 420 | ||
| 424 | static int udataval (lua_State *L) { | 421 | static int udataval (lua_State *L) { |
| 425 | lua_pushintegral(L, cast(int, lua_touserdata(L, 1))); | 422 | lua_pushinteger(L, cast(long, lua_touserdata(L, 1))); |
| 426 | return 1; | 423 | return 1; |
| 427 | } | 424 | } |
| 428 | 425 | ||
| @@ -434,7 +431,7 @@ static int doonnewstack (lua_State *L) { | |||
| 434 | int status = luaL_loadbuffer(L1, s, l, s); | 431 | int status = luaL_loadbuffer(L1, s, l, s); |
| 435 | if (status == 0) | 432 | if (status == 0) |
| 436 | status = lua_pcall(L1, 0, 0, 0); | 433 | status = lua_pcall(L1, 0, 0, 0); |
| 437 | lua_pushintegral(L, status); | 434 | lua_pushinteger(L, status); |
| 438 | return 1; | 435 | return 1; |
| 439 | } | 436 | } |
| 440 | 437 | ||
| @@ -455,7 +452,7 @@ static int newstate (lua_State *L) { | |||
| 455 | lua_State *L1 = lua_open(); | 452 | lua_State *L1 = lua_open(); |
| 456 | if (L1) { | 453 | if (L1) { |
| 457 | lua_userstateopen(L1); /* init lock */ | 454 | lua_userstateopen(L1); /* init lock */ |
| 458 | lua_pushintegral(L, (unsigned long)L1); | 455 | lua_pushinteger(L, (unsigned long)L1); |
| 459 | } | 456 | } |
| 460 | else | 457 | else |
| 461 | lua_pushnil(L); | 458 | lua_pushnil(L); |
| @@ -498,7 +495,7 @@ static int doremote (lua_State *L) { | |||
| 498 | status = lua_pcall(L1, 0, LUA_MULTRET, 0); | 495 | status = lua_pcall(L1, 0, LUA_MULTRET, 0); |
| 499 | if (status != 0) { | 496 | if (status != 0) { |
| 500 | lua_pushnil(L); | 497 | lua_pushnil(L); |
| 501 | lua_pushintegral(L, status); | 498 | lua_pushinteger(L, status); |
| 502 | lua_pushstring(L, lua_tostring(L1, -1)); | 499 | lua_pushstring(L, lua_tostring(L1, -1)); |
| 503 | return 3; | 500 | return 3; |
| 504 | } | 501 | } |
| @@ -513,14 +510,14 @@ static int doremote (lua_State *L) { | |||
| 513 | 510 | ||
| 514 | 511 | ||
| 515 | static int log2_aux (lua_State *L) { | 512 | static int log2_aux (lua_State *L) { |
| 516 | lua_pushintegral(L, luaO_log2(luaL_checkint(L, 1))); | 513 | lua_pushinteger(L, luaO_log2(luaL_checkint(L, 1))); |
| 517 | return 1; | 514 | return 1; |
| 518 | } | 515 | } |
| 519 | 516 | ||
| 520 | static int int2fb_aux (lua_State *L) { | 517 | static int int2fb_aux (lua_State *L) { |
| 521 | int b = luaO_int2fb(luaL_checkint(L, 1)); | 518 | int b = luaO_int2fb(luaL_checkint(L, 1)); |
| 522 | lua_pushintegral(L, b); | 519 | lua_pushinteger(L, b); |
| 523 | lua_pushintegral(L, fb2int(b)); | 520 | lua_pushinteger(L, fb2int(b)); |
| 524 | return 2; | 521 | return 2; |
| 525 | } | 522 | } |
| 526 | 523 | ||
| @@ -590,31 +587,31 @@ static int testC (lua_State *L) { | |||
| 590 | const char *inst = getname; | 587 | const char *inst = getname; |
| 591 | if EQ("") return 0; | 588 | if EQ("") return 0; |
| 592 | else if EQ("isnumber") { | 589 | else if EQ("isnumber") { |
| 593 | lua_pushintegral(L, lua_isnumber(L, getnum)); | 590 | lua_pushinteger(L, lua_isnumber(L, getnum)); |
| 594 | } | 591 | } |
| 595 | else if EQ("isstring") { | 592 | else if EQ("isstring") { |
| 596 | lua_pushintegral(L, lua_isstring(L, getnum)); | 593 | lua_pushinteger(L, lua_isstring(L, getnum)); |
| 597 | } | 594 | } |
| 598 | else if EQ("istable") { | 595 | else if EQ("istable") { |
| 599 | lua_pushintegral(L, lua_istable(L, getnum)); | 596 | lua_pushinteger(L, lua_istable(L, getnum)); |
| 600 | } | 597 | } |
| 601 | else if EQ("iscfunction") { | 598 | else if EQ("iscfunction") { |
| 602 | lua_pushintegral(L, lua_iscfunction(L, getnum)); | 599 | lua_pushinteger(L, lua_iscfunction(L, getnum)); |
| 603 | } | 600 | } |
| 604 | else if EQ("isfunction") { | 601 | else if EQ("isfunction") { |
| 605 | lua_pushintegral(L, lua_isfunction(L, getnum)); | 602 | lua_pushinteger(L, lua_isfunction(L, getnum)); |
| 606 | } | 603 | } |
| 607 | else if EQ("isuserdata") { | 604 | else if EQ("isuserdata") { |
| 608 | lua_pushintegral(L, lua_isuserdata(L, getnum)); | 605 | lua_pushinteger(L, lua_isuserdata(L, getnum)); |
| 609 | } | 606 | } |
| 610 | else if EQ("isudataval") { | 607 | else if EQ("isudataval") { |
| 611 | lua_pushintegral(L, lua_islightuserdata(L, getnum)); | 608 | lua_pushinteger(L, lua_islightuserdata(L, getnum)); |
| 612 | } | 609 | } |
| 613 | else if EQ("isnil") { | 610 | else if EQ("isnil") { |
| 614 | lua_pushintegral(L, lua_isnil(L, getnum)); | 611 | lua_pushinteger(L, lua_isnil(L, getnum)); |
| 615 | } | 612 | } |
| 616 | else if EQ("isnull") { | 613 | else if EQ("isnull") { |
| 617 | lua_pushintegral(L, lua_isnone(L, getnum)); | 614 | lua_pushinteger(L, lua_isnone(L, getnum)); |
| 618 | } | 615 | } |
| 619 | else if EQ("tonumber") { | 616 | else if EQ("tonumber") { |
| 620 | lua_pushnumber(L, lua_tonumber(L, getnum)); | 617 | lua_pushnumber(L, lua_tonumber(L, getnum)); |
| @@ -624,7 +621,7 @@ static int testC (lua_State *L) { | |||
| 624 | lua_pushstring(L, s); | 621 | lua_pushstring(L, s); |
| 625 | } | 622 | } |
| 626 | else if EQ("strlen") { | 623 | else if EQ("strlen") { |
| 627 | lua_pushintegral(L, lua_strlen(L, getnum)); | 624 | lua_pushinteger(L, lua_strlen(L, getnum)); |
| 628 | } | 625 | } |
| 629 | else if EQ("tocfunction") { | 626 | else if EQ("tocfunction") { |
| 630 | lua_pushcfunction(L, lua_tocfunction(L, getnum)); | 627 | lua_pushcfunction(L, lua_tocfunction(L, getnum)); |
| @@ -633,7 +630,7 @@ static int testC (lua_State *L) { | |||
| 633 | return getnum; | 630 | return getnum; |
| 634 | } | 631 | } |
| 635 | else if EQ("gettop") { | 632 | else if EQ("gettop") { |
| 636 | lua_pushintegral(L, lua_gettop(L)); | 633 | lua_pushinteger(L, lua_gettop(L)); |
| 637 | } | 634 | } |
| 638 | else if EQ("settop") { | 635 | else if EQ("settop") { |
| 639 | lua_settop(L, getnum); | 636 | lua_settop(L, getnum); |
| @@ -642,7 +639,7 @@ static int testC (lua_State *L) { | |||
| 642 | lua_pop(L, getnum); | 639 | lua_pop(L, getnum); |
| 643 | } | 640 | } |
| 644 | else if EQ("pushnum") { | 641 | else if EQ("pushnum") { |
| 645 | lua_pushintegral(L, getnum); | 642 | lua_pushinteger(L, getnum); |
| 646 | } | 643 | } |
| 647 | else if EQ("pushnil") { | 644 | else if EQ("pushnil") { |
| 648 | lua_pushnil(L); | 645 | lua_pushnil(L); |
| @@ -651,7 +648,7 @@ static int testC (lua_State *L) { | |||
| 651 | lua_pushboolean(L, getnum); | 648 | lua_pushboolean(L, getnum); |
| 652 | } | 649 | } |
| 653 | else if EQ("tobool") { | 650 | else if EQ("tobool") { |
| 654 | lua_pushintegral(L, lua_toboolean(L, getnum)); | 651 | lua_pushinteger(L, lua_toboolean(L, getnum)); |
| 655 | } | 652 | } |
| 656 | else if EQ("pushvalue") { | 653 | else if EQ("pushvalue") { |
| 657 | lua_pushvalue(L, getnum); | 654 | lua_pushvalue(L, getnum); |
| @@ -718,7 +715,7 @@ static int testC (lua_State *L) { | |||
| 718 | } | 715 | } |
| 719 | else if EQ("getn") { | 716 | else if EQ("getn") { |
| 720 | int i = getnum; | 717 | int i = getnum; |
| 721 | lua_pushintegral(L, luaL_getn(L, i)); | 718 | lua_pushinteger(L, luaL_getn(L, i)); |
| 722 | } | 719 | } |
| 723 | else if EQ("setn") { | 720 | else if EQ("setn") { |
| 724 | int i = getnum; | 721 | int i = getnum; |
