summaryrefslogtreecommitdiff
path: root/ltests.c
diff options
context:
space:
mode:
Diffstat (limited to 'ltests.c')
-rw-r--r--ltests.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/ltests.c b/ltests.c
index 7ae9ba6f..151e1f4c 100644
--- a/ltests.c
+++ b/ltests.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ltests.c,v 2.36 2006/01/10 13:13:06 roberto Exp roberto $ 2** $Id: ltests.c,v 2.37 2006/06/05 19:35:57 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*/
@@ -55,6 +55,12 @@ static void setnameval (lua_State *L, const char *name, int val) {
55} 55}
56 56
57 57
58static void pushobject (lua_State *L, const TValue *o) {
59 setobj2s(L, L->top, o);
60 api_incr_top(L);
61}
62
63
58/* 64/*
59** {====================================================================== 65** {======================================================================
60** Controlled version for realloc. 66** Controlled version for realloc.
@@ -108,7 +114,8 @@ static void freeblock (Memcontrol *mc, void *block, size_t size) {
108 114
109void *debug_realloc (void *ud, void *block, size_t oldsize, size_t size) { 115void *debug_realloc (void *ud, void *block, size_t oldsize, size_t size) {
110 Memcontrol *mc = cast(Memcontrol *, ud); 116 Memcontrol *mc = cast(Memcontrol *, ud);
111 lua_assert(oldsize == 0 || checkblocksize(block, oldsize)); 117 lua_assert((oldsize == 0) ? block == NULL :
118 block && checkblocksize(block, oldsize));
112 if (mc->memlimit == 0) { /* first time? */ 119 if (mc->memlimit == 0) { /* first time? */
113 char *limit = getenv("MEMLIMIT"); /* initialize memory limit */ 120 char *limit = getenv("MEMLIMIT"); /* initialize memory limit */
114 mc->memlimit = limit ? strtoul(limit, NULL, 10) : ULONG_MAX; 121 mc->memlimit = limit ? strtoul(limit, NULL, 10) : ULONG_MAX;
@@ -447,7 +454,7 @@ static int listk (lua_State *L) {
447 p = clvalue(obj_at(L, 1))->l.p; 454 p = clvalue(obj_at(L, 1))->l.p;
448 lua_createtable(L, p->sizek, 0); 455 lua_createtable(L, p->sizek, 0);
449 for (i=0; i<p->sizek; i++) { 456 for (i=0; i<p->sizek; i++) {
450 luaA_pushobject(L, p->k+i); 457 pushobject(L, p->k+i);
451 lua_rawseti(L, -2, i+1); 458 lua_rawseti(L, -2, i+1);
452 } 459 }
453 return 1; 460 return 1;
@@ -573,18 +580,18 @@ static int table_query (lua_State *L) {
573 } 580 }
574 else if (i < t->sizearray) { 581 else if (i < t->sizearray) {
575 lua_pushinteger(L, i); 582 lua_pushinteger(L, i);
576 luaA_pushobject(L, &t->array[i]); 583 pushobject(L, &t->array[i]);
577 lua_pushnil(L); 584 lua_pushnil(L);
578 } 585 }
579 else if ((i -= t->sizearray) < sizenode(t)) { 586 else if ((i -= t->sizearray) < sizenode(t)) {
580 if (!ttisnil(gval(gnode(t, i))) || 587 if (!ttisnil(gval(gnode(t, i))) ||
581 ttisnil(gkey(gnode(t, i))) || 588 ttisnil(gkey(gnode(t, i))) ||
582 ttisnumber(gkey(gnode(t, i)))) { 589 ttisnumber(gkey(gnode(t, i)))) {
583 luaA_pushobject(L, key2tval(gnode(t, i))); 590 pushobject(L, key2tval(gnode(t, i)));
584 } 591 }
585 else 592 else
586 lua_pushliteral(L, "<undef>"); 593 lua_pushliteral(L, "<undef>");
587 luaA_pushobject(L, gval(gnode(t, i))); 594 pushobject(L, gval(gnode(t, i)));
588 if (gnext(&t->node[i])) 595 if (gnext(&t->node[i]))
589 lua_pushinteger(L, gnext(&t->node[i]) - t->node); 596 lua_pushinteger(L, gnext(&t->node[i]) - t->node);
590 else 597 else