summaryrefslogtreecommitdiff
path: root/object.c
diff options
context:
space:
mode:
Diffstat (limited to 'object.c')
-rw-r--r--object.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/object.c b/object.c
index 5f8568e3b4..aa337ea2ce 100644
--- a/object.c
+++ b/object.c
@@ -298,6 +298,10 @@ init_copy(VALUE dest, VALUE obj)
rb_copy_generic_ivar(dest, obj);
rb_gc_copy_finalizer(dest, obj);
+ if (RB_TYPE_P(obj, T_OBJECT)) {
+ rb_obj_copy_ivar(dest, obj);
+ }
+
if (!RB_TYPE_P(obj, T_CLASS) && !RB_TYPE_P(obj, T_MODULE)) {
rb_shape_t *shape_to_set = rb_shape_get_shape(obj);
@@ -310,10 +314,6 @@ init_copy(VALUE dest, VALUE obj)
// shape ids are different
rb_shape_set_shape(dest, shape_to_set);
}
-
- if (RB_TYPE_P(obj, T_OBJECT)) {
- rb_obj_copy_ivar(dest, obj);
- }
}
static VALUE immutable_obj_clone(VALUE obj, VALUE kwfreeze);