aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2010-01-24 15:50:59 +0100
committerMike Pall <mike>2010-01-24 15:50:59 +0100
commit055396a69d9588bf77227f516bf86ff080abdcc4 (patch)
tree62c33a18a57318744db9144bd91fd0df9b96f5ac /src
parent43f1e134709b06be7091ad8f6cfaaaa78adec886 (diff)
downloadluajit-055396a69d9588bf77227f516bf86ff080abdcc4.tar.gz
luajit-055396a69d9588bf77227f516bf86ff080abdcc4.tar.bz2
luajit-055396a69d9588bf77227f516bf86ff080abdcc4.zip
Force error if lua_newstate() is used in 64 bit mode.
Diffstat (limited to 'src')
-rw-r--r--src/lib_aux.c14
-rw-r--r--src/lj_state.c4
-rw-r--r--src/lj_state.h3
3 files changed, 21 insertions, 0 deletions
diff --git a/src/lib_aux.c b/src/lib_aux.c
index 419650a9..25a3b5ce 100644
--- a/src/lib_aux.c
+++ b/src/lib_aux.c
@@ -18,6 +18,7 @@
18 18
19#include "lj_obj.h" 19#include "lj_obj.h"
20#include "lj_err.h" 20#include "lj_err.h"
21#include "lj_state.h"
21#include "lj_lib.h" 22#include "lj_lib.h"
22 23
23/* -- Module registration ------------------------------------------------- */ 24/* -- Module registration ------------------------------------------------- */
@@ -349,8 +350,21 @@ static int panic(lua_State *L)
349 350
350LUALIB_API lua_State *luaL_newstate(void) 351LUALIB_API lua_State *luaL_newstate(void)
351{ 352{
353#if LJ_64
354 lua_State *L = lj_state_newstate(mem_alloc, mem_create());
355#else
352 lua_State *L = lua_newstate(mem_alloc, mem_create()); 356 lua_State *L = lua_newstate(mem_alloc, mem_create());
357#endif
353 if (L) G(L)->panic = panic; 358 if (L) G(L)->panic = panic;
354 return L; 359 return L;
355} 360}
356 361
362#if LJ_64
363LUA_API lua_State *lua_newstate(lua_Alloc f, void *ud)
364{
365 UNUSED(f); UNUSED(ud);
366 fprintf(stderr, "Must use luaL_newstate() for 64 bit target\n");
367 return NULL;
368}
369#endif
370
diff --git a/src/lj_state.c b/src/lj_state.c
index f7f30117..87043dd5 100644
--- a/src/lj_state.c
+++ b/src/lj_state.c
@@ -158,7 +158,11 @@ static void close_state(lua_State *L)
158 } 158 }
159} 159}
160 160
161#if LJ_64
162lua_State *lj_state_newstate(lua_Alloc f, void *ud)
163#else
161LUA_API lua_State *lua_newstate(lua_Alloc f, void *ud) 164LUA_API lua_State *lua_newstate(lua_Alloc f, void *ud)
165#endif
162{ 166{
163 GG_State *GG = cast(GG_State *, f(ud, NULL, 0, sizeof(GG_State))); 167 GG_State *GG = cast(GG_State *, f(ud, NULL, 0, sizeof(GG_State)));
164 lua_State *L = &GG->L; 168 lua_State *L = &GG->L;
diff --git a/src/lj_state.h b/src/lj_state.h
index 2238be64..cd2f216d 100644
--- a/src/lj_state.h
+++ b/src/lj_state.h
@@ -27,5 +27,8 @@ static LJ_AINLINE void lj_state_checkstack(lua_State *L, MSize need)
27 27
28LJ_FUNC lua_State *lj_state_new(lua_State *L); 28LJ_FUNC lua_State *lj_state_new(lua_State *L);
29LJ_FUNC void LJ_FASTCALL lj_state_free(global_State *g, lua_State *L); 29LJ_FUNC void LJ_FASTCALL lj_state_free(global_State *g, lua_State *L);
30#if LJ_64
31LJ_FUNC lua_State *lj_state_newstate(lua_Alloc f, void *ud);
32#endif
30 33
31#endif 34#endif