aboutsummaryrefslogtreecommitdiff
path: root/ltests.c
diff options
context:
space:
mode:
Diffstat (limited to 'ltests.c')
-rw-r--r--ltests.c34
1 files changed, 24 insertions, 10 deletions
diff --git a/ltests.c b/ltests.c
index 9aef6953..40ba3f4b 100644
--- a/ltests.c
+++ b/ltests.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ltests.c,v 1.28 2000/06/28 17:06:07 roberto Exp roberto $ 2** $Id: ltests.c,v 1.29 2000/06/30 19:17:08 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*/
@@ -169,9 +169,14 @@ static void get_limits (void) {
169 169
170 170
171static void mem_query (void) { 171static void mem_query (void) {
172 lua_pushnumber(memdebug_total); 172 lua_Object arg = lua_getparam(1);
173 lua_pushnumber(memdebug_numblocks); 173 if (arg == LUA_NOOBJECT) {
174 lua_pushnumber(memdebug_maxmem); 174 lua_pushnumber(memdebug_total);
175 lua_pushnumber(memdebug_numblocks);
176 lua_pushnumber(memdebug_maxmem);
177 }
178 else
179 memdebug_memlimit = luaL_check_int(1);
175} 180}
176 181
177 182
@@ -375,7 +380,10 @@ static void testC (void) {
375 else if EQ("newstate") { 380 else if EQ("newstate") {
376 int stacksize = getnum(&pc); 381 int stacksize = getnum(&pc);
377 lua_State *L1 = lua_newstate(stacksize, getnum(&pc)); 382 lua_State *L1 = lua_newstate(stacksize, getnum(&pc));
378 lua_pushuserdata(L1); 383 if (L1)
384 lua_pushuserdata(L1);
385 else
386 lua_pushnil();
379 } 387 }
380 else if EQ("closestate") { 388 else if EQ("closestate") {
381 (lua_close)((lua_State *)lua_getuserdata(reg[getreg(&pc)])); 389 (lua_close)((lua_State *)lua_getuserdata(reg[getreg(&pc)]));
@@ -385,14 +393,20 @@ static void testC (void) {
385 lua_Object str = reg[getreg(&pc)]; 393 lua_Object str = reg[getreg(&pc)];
386 lua_State *L1; 394 lua_State *L1;
387 lua_Object temp; 395 lua_Object temp;
388 int i; 396 int status;
389 if (!lua_isuserdata(ol1) || !lua_isstring(str)) 397 if (!lua_isuserdata(ol1) || !lua_isstring(str))
390 lua_error("bad arguments for `doremote'"); 398 lua_error("bad arguments for `doremote'");
391 L1 = (lua_State *)lua_getuserdata(ol1); 399 L1 = (lua_State *)lua_getuserdata(ol1);
392 (lua_dostring)(L1, lua_getstring(str)); 400 status = (lua_dostring)(L1, lua_getstring(str));
393 i = 1; 401 if (status != 0) {
394 while ((temp = (lua_getresult)(L1, i++)) != LUA_NOOBJECT) 402 lua_pushnil();
395 lua_pushstring((lua_getstring)(L1, temp)); 403 lua_pushnumber(status);
404 }
405 else {
406 int i = 1;
407 while ((temp = (lua_getresult)(L1, i++)) != LUA_NOOBJECT)
408 lua_pushstring((lua_getstring)(L1, temp));
409 }
396 } 410 }
397#if LUA_DEPRECATETFUNCS 411#if LUA_DEPRECATETFUNCS
398 else if EQ("rawsetglobal") { 412 else if EQ("rawsetglobal") {