diff options
| author | Daniel Bovensiepen <[email protected]> | 2012-11-17 13:54:32 +0800 |
|---|---|---|
| committer | Daniel Bovensiepen <[email protected]> | 2012-11-17 13:54:32 +0800 |
| commit | d8234a45759b3bd7b107750fda886cd828b52173 (patch) | |
| tree | 864fc0207a46d8d2511e66cd1affc53cdf3984c4 /src/kernel.c | |
| parent | c3bd1c1d0d43e7571bc38cfa71c40c69cea1b5a4 (diff) | |
| parent | 7cea9d7b945a4b00cef699f47c07654f8b7bd579 (diff) | |
| download | mruby-d8234a45759b3bd7b107750fda886cd828b52173.tar.gz mruby-d8234a45759b3bd7b107750fda886cd828b52173.zip | |
Merge remote-tracking branch 'upstream/master' into mrbgems
Diffstat (limited to 'src/kernel.c')
| -rw-r--r-- | src/kernel.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/kernel.c b/src/kernel.c index ac3c10f46..adb616466 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -287,7 +287,8 @@ mrb_singleton_class_clone(mrb_state *mrb, mrb_value obj) clone->super = klass->super; if (klass->iv) { - clone->iv = klass->iv; + mrb_iv_copy(mrb, mrb_obj_value(clone), mrb_obj_value(klass)); + mrb_obj_iv_set(mrb, (struct RObject*)clone, mrb_intern(mrb, "__attached__"), obj); } if (klass->mt) { clone->mt = kh_copy(mt, mrb, klass->mt); @@ -307,6 +308,9 @@ init_copy(mrb_state *mrb, mrb_value dest, mrb_value obj) case MRB_TT_OBJECT: case MRB_TT_CLASS: case MRB_TT_MODULE: + case MRB_TT_SCLASS: + case MRB_TT_HASH: + case MRB_TT_DATA: mrb_iv_copy(mrb, dest, obj); break; |
