diff options
Diffstat (limited to 'src/lj_lex.c')
-rw-r--r-- | src/lj_lex.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lj_lex.c b/src/lj_lex.c index c97d6e0e..ac0d1e95 100644 --- a/src/lj_lex.c +++ b/src/lj_lex.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include "lj_cdata.h" | 19 | #include "lj_cdata.h" |
20 | #include "lualib.h" | 20 | #include "lualib.h" |
21 | #endif | 21 | #endif |
22 | #include "lj_state.h" | ||
22 | #include "lj_lex.h" | 23 | #include "lj_lex.h" |
23 | #include "lj_parse.h" | 24 | #include "lj_parse.h" |
24 | #include "lj_char.h" | 25 | #include "lj_char.h" |
@@ -87,6 +88,7 @@ static void inclinenumber(LexState *ls) | |||
87 | /* Load FFI library on-demand. Needed if we create cdata objects. */ | 88 | /* Load FFI library on-demand. Needed if we create cdata objects. */ |
88 | static void lex_loadffi(lua_State *L) | 89 | static void lex_loadffi(lua_State *L) |
89 | { | 90 | { |
91 | ptrdiff_t oldtop = savestack(L, L->top); | ||
90 | cTValue *tmp; | 92 | cTValue *tmp; |
91 | luaopen_ffi(L); | 93 | luaopen_ffi(L); |
92 | tmp = lj_tab_getstr(tabV(registry(L)), lj_str_newlit(L, "_LOADED")); | 94 | tmp = lj_tab_getstr(tabV(registry(L)), lj_str_newlit(L, "_LOADED")); |
@@ -95,7 +97,7 @@ static void lex_loadffi(lua_State *L) | |||
95 | copyTV(L, lj_tab_setstr(L, t, lj_str_newlit(L, "ffi")), L->top-1); | 97 | copyTV(L, lj_tab_setstr(L, t, lj_str_newlit(L, "ffi")), L->top-1); |
96 | lj_gc_anybarriert(L, t); | 98 | lj_gc_anybarriert(L, t); |
97 | } | 99 | } |
98 | L->top--; | 100 | L->top = restorestack(L, oldtop); |
99 | } | 101 | } |
100 | 102 | ||
101 | /* Parse 64 bit integer. */ | 103 | /* Parse 64 bit integer. */ |