summaryrefslogtreecommitdiff
path: root/imemo.c
diff options
context:
space:
mode:
Diffstat (limited to 'imemo.c')
-rw-r--r--imemo.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/imemo.c b/imemo.c
index 6477be9d78..ebea6f6f25 100644
--- a/imemo.c
+++ b/imemo.c
@@ -155,11 +155,13 @@ rb_imemo_class_fields_clone(VALUE fields_obj)
if (rb_shape_too_complex_p(shape_id)) {
clone = rb_imemo_class_fields_new_complex(CLASS_OF(fields_obj), 0);
+ RBASIC_SET_SHAPE_ID(clone, shape_id);
st_table *src_table = rb_imemo_class_fields_complex_tbl(fields_obj);
st_replace(rb_imemo_class_fields_complex_tbl(clone), src_table);
}
else {
clone = imemo_class_fields_new(CLASS_OF(fields_obj), RSHAPE_CAPACITY(shape_id));
+ RBASIC_SET_SHAPE_ID(clone, shape_id);
MEMCPY(rb_imemo_class_fields_ptr(clone), rb_imemo_class_fields_ptr(fields_obj), VALUE, RSHAPE_LEN(shape_id));
}