summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-05-30 17:05:05 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2018-05-30 17:05:05 +0900
commit1dddc2f712f774b22a8f65432299cebb3b26361b (patch)
treef6e625a5612d676813ba5edce039d951775806ad /src
parent14c21793a01e4caa802e600540628fe9ae622d54 (diff)
downloadmruby-1dddc2f712f774b22a8f65432299cebb3b26361b.tar.gz
mruby-1dddc2f712f774b22a8f65432299cebb3b26361b.zip
Clear `__classname__` of duped class/module; ref #4027
Diffstat (limited to 'src')
-rw-r--r--src/kernel.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/kernel.c b/src/kernel.c
index e9dc93bbd..8551b50ea 100644
--- a/src/kernel.c
+++ b/src/kernel.c
@@ -282,7 +282,9 @@ init_copy(mrb_state *mrb, mrb_value dest, mrb_value obj)
case MRB_TT_CLASS:
case MRB_TT_MODULE:
copy_class(mrb, dest, obj);
- /* fall through */
+ mrb_iv_copy(mrb, dest, obj);
+ mrb_iv_remove(mrb, dest, mrb_intern_lit(mrb, "__classname__"));
+ break;
case MRB_TT_OBJECT:
case MRB_TT_SCLASS:
case MRB_TT_HASH: