67 while (lua_gettop(s) > 0) {
124 static void LuaStateSetReg(
lua_State *luastate,
const void *key, uint32_t type_id,
void *ptr)
126 lua_pushlightuserdata(luastate, (
void *)key);
131 lua_gettable(luastate, LUA_REGISTRYINDEX);
132 if (lua_type(luastate, -1) == LUA_TUSERDATA &&
135 if (v != NULL && v->
type_id == type_id) {
137 lua_pop(luastate, 1);
141 lua_pop(luastate, 1);
142 lua_pushlightuserdata(luastate, (
void *)key);
143 lua_pushnil(luastate);
144 lua_settable(luastate, LUA_REGISTRYINDEX);
150 lua_gettable(luastate, LUA_REGISTRYINDEX);
151 if (lua_type(luastate, -1) == LUA_TUSERDATA &&
154 if (v != NULL && v->
type_id == type_id) {
156 lua_pop(luastate, 1);
160 lua_pop(luastate, 1);
161 lua_pushlightuserdata(luastate, (
void *)key);
165 lua_settable(luastate, LUA_REGISTRYINDEX);
168 static void *LuaStateGetReg(
lua_State *luastate,
const void *key, uint32_t type_id)
170 lua_pushlightuserdata(luastate, (
void *)key);
171 lua_gettable(luastate, LUA_REGISTRYINDEX);
176 if (lua_type(luastate, -1) == LUA_TUSERDATA &&
179 if (v != NULL && v->
type_id == type_id) {
183 lua_pop(luastate, 1);
219 return (gen != NULL) ? *gen : 0;
243 lua_gettable(luastate, LUA_REGISTRYINDEX);
244 uint64_t tx_id = lua_tointeger(luastate, -1);
245 lua_pop(luastate, 1);
256 lua_pushinteger(luastate, tx_id);
257 lua_settable(luastate, LUA_REGISTRYINDEX);
333 lua_gettable(luastate, LUA_REGISTRYINDEX);
334 int dir = lua_toboolean(luastate, -1);
335 lua_pop(luastate, 1);
342 lua_pushboolean(luastate, direction);
343 lua_settable(luastate, LUA_REGISTRYINDEX);
348 int size = lua_gettop(state);
351 for (i = 1; i <= size; i++) {
352 int type = lua_type(state, i);
353 printf(
"Stack size=%d, level=%d, type=%d, ", size, i,
type);
357 printf(
"function %s", lua_tostring(state, i) ?
"true" :
"false");
360 printf(
"bool %s", lua_toboolean(state, i) ?
"true" :
"false");
363 printf(
"number %g", lua_tonumber(state, i));
366 printf(
"string `%s'", lua_tostring(state, i));
369 printf(
"table `%s'", lua_tostring(state, i));
372 printf(
"other %s", lua_typename(state,
type));
386 input = (
const uint8_t *)
"";
389 lua_pushlstring(luastate, (
char *)input, input_len);
395 lua_pushinteger(luastate, n);