aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lj_record.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_record.c b/src/lj_record.c
index dc1bf835..082f12e0 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -1159,7 +1159,8 @@ static void rec_idx_bump(jit_State *J, RecordIndex *ix)
1159 } else if (ir->o == IR_TDUP) { 1159 } else if (ir->o == IR_TDUP) {
1160 GCtab *tpl = gco2tab(proto_kgc(&gcref(rbc->pt)->pt, ~(ptrdiff_t)bc_d(*pc))); 1160 GCtab *tpl = gco2tab(proto_kgc(&gcref(rbc->pt)->pt, ~(ptrdiff_t)bc_d(*pc)));
1161 /* Grow template table, but preserve keys with nil values. */ 1161 /* Grow template table, but preserve keys with nil values. */
1162 if (tb->asize > tpl->asize || (1u << nhbits)-1 > tpl->hmask) { 1162 if ((tb->asize > tpl->asize && (1u << nhbits)-1 == tpl->hmask) ||
1163 (tb->asize == tpl->asize && (1u << nhbits)-1 > tpl->hmask)) {
1163 Node *node = noderef(tpl->node); 1164 Node *node = noderef(tpl->node);
1164 uint32_t i, hmask = tpl->hmask; 1165 uint32_t i, hmask = tpl->hmask;
1165 for (i = 0; i <= hmask; i++) { 1166 for (i = 0; i <= hmask; i++) {