@@ -18,6 +18,7 @@
#include "lj_obj.h"
#include "lj_err.h"
+#include "lj_state.h"
#include "lj_lib.h"
/* -- Module registration ------------------------------------------------- */
@@ -349,8 +350,21 @@ static int panic(lua_State *L)
LUALIB_API lua_State *luaL_newstate(void)
{
+#if LJ_64
+ lua_State *L = lj_state_newstate(mem_alloc, mem_create());
+#else
lua_State *L = lua_newstate(mem_alloc, mem_create());
+#endif
if (L) G(L)->panic = panic;
return L;
}
+LUA_API lua_State *lua_newstate(lua_Alloc f, void *ud)
+{
+ UNUSED(f); UNUSED(ud);
+ fprintf(stderr, "Must use luaL_newstate() for 64 bit target\n");
+ return NULL;
+}
+
@@ -158,7 +158,11 @@ static void close_state(lua_State *L)
+lua_State *lj_state_newstate(lua_Alloc f, void *ud)
LUA_API lua_State *lua_newstate(lua_Alloc f, void *ud)
GG_State *GG = cast(GG_State *, f(ud, NULL, 0, sizeof(GG_State)));
lua_State *L = &GG->L;
@@ -27,5 +27,8 @@ static LJ_AINLINE void lj_state_checkstack(lua_State *L, MSize need)
LJ_FUNC lua_State *lj_state_new(lua_State *L);
LJ_FUNC void LJ_FASTCALL lj_state_free(global_State *g, lua_State *L);
+LJ_FUNC lua_State *lj_state_newstate(lua_Alloc f, void *ud);
#endif