|
|
@ -1,5 +1,5 @@ |
|
|
|
/*
|
|
|
|
** $Id: ltests.c,v 1.63 2001/02/06 16:01:29 roberto Exp roberto $ |
|
|
|
** $Id: ltests.c,v 1.64 2001/02/06 18:18:58 roberto Exp roberto $ |
|
|
|
** Internal Module for Debugging of the Lua Implementation |
|
|
|
** See Copyright Notice in lua.h |
|
|
|
*/ |
|
|
@ -348,12 +348,18 @@ static int unref (lua_State *L) { |
|
|
|
} |
|
|
|
|
|
|
|
static int newuserdata (lua_State *L) { |
|
|
|
if (lua_isnumber(L, 2)) |
|
|
|
lua_pushusertag(L, (void *)luaL_check_int(L, 1), luaL_check_int(L, 2)); |
|
|
|
else |
|
|
|
if (lua_isnumber(L, 2)) { |
|
|
|
int tag = luaL_check_int(L, 2); |
|
|
|
int res = lua_pushuserdata(L, (void *)luaL_check_int(L, 1)); |
|
|
|
if (tag) lua_settag(L, tag); |
|
|
|
lua_pushnumber(L, res); |
|
|
|
return 2; |
|
|
|
} |
|
|
|
else { |
|
|
|
lua_newuserdata(L, luaL_check_int(L, 1)); |
|
|
|
return 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
static int udataval (lua_State *L) { |
|
|
|
luaL_checktype(L, 1, LUA_TUSERDATA); |
|
|
@ -361,6 +367,10 @@ static int udataval (lua_State *L) { |
|
|
|
return 1; |
|
|
|
} |
|
|
|
|
|
|
|
static int newtag (lua_State *L) { |
|
|
|
lua_pushnumber(L, lua_newtype(L, lua_tostring(L, 1), lua_tonumber(L, 2))); |
|
|
|
return 1; |
|
|
|
} |
|
|
|
|
|
|
|
static int doonnewstack (lua_State *L) { |
|
|
|
lua_State *L1 = lua_open(L, luaL_check_int(L, 1)); |
|
|
@ -631,6 +641,7 @@ static const struct luaL_reg tests_funcs[] = { |
|
|
|
{"unref", unref}, |
|
|
|
{"newuserdata", newuserdata}, |
|
|
|
{"udataval", udataval}, |
|
|
|
{"newtag", newtag}, |
|
|
|
{"doonnewstack", doonnewstack}, |
|
|
|
{"newstate", newstate}, |
|
|
|
{"closestate", closestate}, |
|
|
|