summaryrefslogtreecommitdiff
path: root/src/lj_state.c
diff options
context:
space:
mode:
authorMike Pall <mike>2010-02-11 16:21:18 +0100
committerMike Pall <mike>2010-02-11 16:21:18 +0100
commitb2067236c5e1f9bfddeb5232f78865f72faef494 (patch)
tree4ce7391dc45261ea438d08fc52db801c9cd15eb1 /src/lj_state.c
parent565eb3957485bf7568bf6e8bba75e5f35f9bf3e9 (diff)
downloadluajit-b2067236c5e1f9bfddeb5232f78865f72faef494.tar.gz
luajit-b2067236c5e1f9bfddeb5232f78865f72faef494.tar.bz2
luajit-b2067236c5e1f9bfddeb5232f78865f72faef494.zip
Move dispatch tables out of GG_State struct.
Diffstat (limited to '')
-rw-r--r--src/lj_state.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/lj_state.c b/src/lj_state.c
index 7c8e9c96..69f182ed 100644
--- a/src/lj_state.c
+++ b/src/lj_state.c
@@ -119,6 +119,8 @@ static void stack_init(lua_State *L1, lua_State *L)
119 119
120/* -- State handling ------------------------------------------------------ */ 120/* -- State handling ------------------------------------------------------ */
121 121
122#define GG_SIZE (sizeof(GG_State)+(BC__MAX*2)*sizeof(ASMFunction))
123
122/* Open parts that may cause memory-allocation errors. */ 124/* Open parts that may cause memory-allocation errors. */
123static TValue *cpluaopen(lua_State *L, lua_CFunction dummy, void *ud) 125static TValue *cpluaopen(lua_State *L, lua_CFunction dummy, void *ud)
124{ 126{
@@ -154,8 +156,8 @@ static void close_state(lua_State *L)
154 lj_mem_freevec(g, g->strhash, g->strmask+1, GCRef); 156 lj_mem_freevec(g, g->strhash, g->strmask+1, GCRef);
155 lj_str_freebuf(g, &g->tmpbuf); 157 lj_str_freebuf(g, &g->tmpbuf);
156 lj_mem_freevec(g, L->stack, L->stacksize, TValue); 158 lj_mem_freevec(g, L->stack, L->stacksize, TValue);
157 lua_assert(g->gc.total == sizeof(GG_State)); 159 lua_assert(g->gc.total == GG_SIZE);
158 g->allocf(g->allocd, G2GG(g), sizeof(GG_State), 0); 160 g->allocf(g->allocd, G2GG(g), GG_SIZE, 0);
159 } 161 }
160} 162}
161 163
@@ -165,7 +167,7 @@ lua_State *lj_state_newstate(lua_Alloc f, void *ud)
165LUA_API lua_State *lua_newstate(lua_Alloc f, void *ud) 167LUA_API lua_State *lua_newstate(lua_Alloc f, void *ud)
166#endif 168#endif
167{ 169{
168 GG_State *GG = cast(GG_State *, f(ud, NULL, 0, sizeof(GG_State))); 170 GG_State *GG = cast(GG_State *, f(ud, NULL, 0, GG_SIZE));
169 lua_State *L = &GG->L; 171 lua_State *L = &GG->L;
170 global_State *g = &GG->g; 172 global_State *g = &GG->g;
171 if (GG == NULL || !checkptr32(GG)) return NULL; 173 if (GG == NULL || !checkptr32(GG)) return NULL;
@@ -188,7 +190,7 @@ LUA_API lua_State *lua_newstate(lua_Alloc f, void *ud)
188 g->gc.state = GCSpause; 190 g->gc.state = GCSpause;
189 setgcref(g->gc.root, obj2gco(L)); 191 setgcref(g->gc.root, obj2gco(L));
190 g->gc.sweep = &g->gc.root; 192 g->gc.sweep = &g->gc.root;
191 g->gc.total = sizeof(GG_State); 193 g->gc.total = GG_SIZE;
192 g->gc.pause = LUAI_GCPAUSE; 194 g->gc.pause = LUAI_GCPAUSE;
193 g->gc.stepmul = LUAI_GCMUL; 195 g->gc.stepmul = LUAI_GCMUL;
194 lj_dispatch_init((GG_State *)L); 196 lj_dispatch_init((GG_State *)L);