diff options
author | Mike Pall <mike> | 2010-02-11 16:21:18 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2010-02-11 16:21:18 +0100 |
commit | b2067236c5e1f9bfddeb5232f78865f72faef494 (patch) | |
tree | 4ce7391dc45261ea438d08fc52db801c9cd15eb1 /src/lj_state.c | |
parent | 565eb3957485bf7568bf6e8bba75e5f35f9bf3e9 (diff) | |
download | luajit-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.c | 10 |
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. */ |
123 | static TValue *cpluaopen(lua_State *L, lua_CFunction dummy, void *ud) | 125 | static 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) | |||
165 | LUA_API lua_State *lua_newstate(lua_Alloc f, void *ud) | 167 | LUA_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); |