It was too early to check `key` for `undef`; ref
MODIFY
src/hash.c
src/hash.c
@@ -543,10 +543,10 @@ ht_copy(mrb_state *mrb, htable *t)
mrb_value key = seg->e[i].key;
mrb_value val = seg->e[i].val;
- if (mrb_undef_p(key)) continue; /* skip deleted key */
if ((seg->next == NULL) && (i >= t->last_len)) {
return t2;
}
+ if (mrb_undef_p(key)) continue; /* skip deleted key */
ht_put(mrb, t2, key, val);
}
seg = seg->next;

It was too early to check `key` for `undef`; ref #4534