aboutsummaryrefslogtreecommitdiff
path: root/src/state.c
diff options
context:
space:
mode:
authorBenoit Germain <bnt.germain@gmail.com>2022-03-09 14:11:21 +0100
committerBenoit Germain <bnt.germain@gmail.com>2022-03-09 14:11:21 +0100
commit49ef9d50d475921aab0c50b13b857f8cb990fcc0 (patch)
tree0b5e4deefd63481e99557dd326352a4bb8cb5dc0 /src/state.c
parentfe44f7e83fc0b3264533caaa3085938d78c3750b (diff)
downloadlanes-49ef9d50d475921aab0c50b13b857f8cb990fcc0.tar.gz
lanes-49ef9d50d475921aab0c50b13b857f8cb990fcc0.tar.bz2
lanes-49ef9d50d475921aab0c50b13b857f8cb990fcc0.zip
moonjit support
Diffstat (limited to 'src/state.c')
-rw-r--r--src/state.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/state.c b/src/state.c
index a2de5cb..ef70842 100644
--- a/src/state.c
+++ b/src/state.c
@@ -41,6 +41,7 @@ THE SOFTWARE.
41#endif // __APPLE__ 41#endif // __APPLE__
42 42
43#include "compat.h" 43#include "compat.h"
44#include "macros_and_utils.h"
44#include "universe.h" 45#include "universe.h"
45#include "tools.h" 46#include "tools.h"
46#include "lanes.h" 47#include "lanes.h"
@@ -148,12 +149,12 @@ static const luaL_Reg libs[] =
148 { LUA_COLIBNAME, NULL}, // Lua 5.1: part of base package 149 { LUA_COLIBNAME, NULL}, // Lua 5.1: part of base package
149#endif // LUA_VERSION_NUM 150#endif // LUA_VERSION_NUM
150 { LUA_DBLIBNAME, luaopen_debug}, 151 { LUA_DBLIBNAME, luaopen_debug},
151#if LUAJIT_FLAVOR != 0 // building against LuaJIT headers, add some LuaJIT-specific libs 152#if LUAJIT_FLAVOR() != 0 // building against LuaJIT headers, add some LuaJIT-specific libs
152//#pragma message( "supporting JIT base libs") 153//#pragma message( "supporting JIT base libs")
153 { LUA_BITLIBNAME, luaopen_bit}, 154 { LUA_BITLIBNAME, luaopen_bit},
154 { LUA_JITLIBNAME, luaopen_jit}, 155 { LUA_JITLIBNAME, luaopen_jit},
155 { LUA_FFILIBNAME, luaopen_ffi}, 156 { LUA_FFILIBNAME, luaopen_ffi},
156#endif // LUAJIT_FLAVOR 157#endif // LUAJIT_FLAVOR()
157 158
158{ LUA_DBLIBNAME, luaopen_debug}, 159{ LUA_DBLIBNAME, luaopen_debug},
159{ "lanes.core", require_lanes_core}, // So that we can open it like any base library (possible since we have access to the init function) 160{ "lanes.core", require_lanes_core}, // So that we can open it like any base library (possible since we have access to the init function)
@@ -249,10 +250,10 @@ void initialize_on_state_create( Universe* U, lua_State* L)
249lua_State* create_state( Universe* U, lua_State* from_) 250lua_State* create_state( Universe* U, lua_State* from_)
250{ 251{
251 lua_State* L; 252 lua_State* L;
252#if LUAJIT_FLAVOR == 64 253#if LUAJIT_FLAVOR() == 64
253 // for some reason, LuaJIT 64 bits does not support creating a state with lua_newstate... 254 // for some reason, LuaJIT 64 bits does not support creating a state with lua_newstate...
254 L = luaL_newstate(); 255 L = luaL_newstate();
255#else // LUAJIT_FLAVOR == 64 256#else // LUAJIT_FLAVOR() == 64
256 if( U->provide_allocator != NULL) // we have a function we can call to obtain an allocator 257 if( U->provide_allocator != NULL) // we have a function we can call to obtain an allocator
257 { 258 {
258 lua_pushcclosure( from_, U->provide_allocator, 0); 259 lua_pushcclosure( from_, U->provide_allocator, 0);
@@ -268,7 +269,7 @@ lua_State* create_state( Universe* U, lua_State* from_)
268 // reuse the allocator provided when the master state was created 269 // reuse the allocator provided when the master state was created
269 L = lua_newstate( U->protected_allocator.definition.allocF, U->protected_allocator.definition.allocUD); 270 L = lua_newstate( U->protected_allocator.definition.allocF, U->protected_allocator.definition.allocUD);
270 } 271 }
271#endif // LUAJIT_FLAVOR == 64 272#endif // LUAJIT_FLAVOR() == 64
272 273
273 if( L == NULL) 274 if( L == NULL)
274 { 275 {
@@ -418,7 +419,7 @@ lua_State* luaG_newstate( Universe* U, lua_State* from_, char const* libs_)
418 lua_pushglobaltable( L); // Lua 5.2 no longer has LUA_GLOBALSINDEX: we must push globals table on the stack 419 lua_pushglobaltable( L); // Lua 5.2 no longer has LUA_GLOBALSINDEX: we must push globals table on the stack
419 populate_func_lookup_table( L, -1, NULL); 420 populate_func_lookup_table( L, -1, NULL);
420 421
421#if 0 && USE_DEBUG_SPEW 422#if 0 && USE_DEBUG_SPEW()
422 // dump the lookup database contents 423 // dump the lookup database contents
423 lua_getfield( L, LUA_REGISTRYINDEX, LOOKUP_REGKEY); // {} 424 lua_getfield( L, LUA_REGISTRYINDEX, LOOKUP_REGKEY); // {}
424 lua_pushnil( L); // {} nil 425 lua_pushnil( L); // {} nil
@@ -432,7 +433,7 @@ lua_State* luaG_newstate( Universe* U, lua_State* from_, char const* libs_)
432 lua_pop( L, 1); // {} k 433 lua_pop( L, 1); // {} k
433 } 434 }
434 lua_pop( L, 1); // {} 435 lua_pop( L, 1); // {}
435#endif // USE_DEBUG_SPEW 436#endif // USE_DEBUG_SPEW()
436 437
437 lua_pop( L, 1); 438 lua_pop( L, 1);
438 STACK_END( L, 0); 439 STACK_END( L, 0);