diff options
author | Mike Pall <mike> | 2013-10-14 19:31:24 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2013-10-14 19:31:24 +0200 |
commit | 5d25645a210f32dddecde9c50afb14f9ee63e180 (patch) | |
tree | b6cf446eb9c58f6d4e5ed0064c11d83cb2348b01 /src/lj_tab.c | |
parent | 3cdeb54a24047d1402a0c2d795888c0791f9157d (diff) | |
download | luajit-5d25645a210f32dddecde9c50afb14f9ee63e180.tar.gz luajit-5d25645a210f32dddecde9c50afb14f9ee63e180.tar.bz2 luajit-5d25645a210f32dddecde9c50afb14f9ee63e180.zip |
FFI: Rehash finalizer table after GC cycle, if needed.
Diffstat (limited to 'src/lj_tab.c')
-rw-r--r-- | src/lj_tab.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/lj_tab.c b/src/lj_tab.c index ccad1f68..0a4bf107 100644 --- a/src/lj_tab.c +++ b/src/lj_tab.c | |||
@@ -351,6 +351,13 @@ static void rehashtab(lua_State *L, GCtab *t, cTValue *ek) | |||
351 | resizetab(L, t, asize, hsize2hbits(total)); | 351 | resizetab(L, t, asize, hsize2hbits(total)); |
352 | } | 352 | } |
353 | 353 | ||
354 | #if LJ_HASFFI | ||
355 | void lj_tab_rehash(lua_State *L, GCtab *t) | ||
356 | { | ||
357 | rehashtab(L, t, niltv(L)); | ||
358 | } | ||
359 | #endif | ||
360 | |||
354 | void lj_tab_reasize(lua_State *L, GCtab *t, uint32_t nasize) | 361 | void lj_tab_reasize(lua_State *L, GCtab *t, uint32_t nasize) |
355 | { | 362 | { |
356 | resizetab(L, t, nasize+1, t->hmask > 0 ? lj_fls(t->hmask)+1 : 0); | 363 | resizetab(L, t, nasize+1, t->hmask > 0 ? lj_fls(t->hmask)+1 : 0); |