diff options
-rw-r--r-- | src/lj_func.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lj_func.c b/src/lj_func.c index 431a56d7..3f6626b3 100644 --- a/src/lj_func.c +++ b/src/lj_func.c | |||
@@ -140,7 +140,9 @@ GCfunc *lj_func_newL_empty(lua_State *L, GCproto *pt, GCtab *env) | |||
140 | /* NOBARRIER: The GCfunc is new (marked white). */ | 140 | /* NOBARRIER: The GCfunc is new (marked white). */ |
141 | for (i = 0; i < nuv; i++) { | 141 | for (i = 0; i < nuv; i++) { |
142 | GCupval *uv = func_emptyuv(L); | 142 | GCupval *uv = func_emptyuv(L); |
143 | uv->dhash = (uint32_t)(uintptr_t)pt ^ ((uint32_t)proto_uv(pt)[i] << 24); | 143 | int32_t v = proto_uv(pt)[i]; |
144 | uv->immutable = ((v / PROTO_UV_IMMUTABLE) & 1); | ||
145 | uv->dhash = (uint32_t)(uintptr_t)pt ^ (v << 24); | ||
144 | setgcref(fn->l.uvptr[i], obj2gco(uv)); | 146 | setgcref(fn->l.uvptr[i], obj2gco(uv)); |
145 | } | 147 | } |
146 | fn->l.nupvalues = (uint8_t)nuv; | 148 | fn->l.nupvalues = (uint8_t)nuv; |