diff options
| author | Bouke van der Bijl <[email protected]> | 2016-11-21 16:31:47 -0500 |
|---|---|---|
| committer | Bouke van der Bijl <[email protected]> | 2016-11-24 09:52:30 -0500 |
| commit | 73bb30c2f4dba7c8da091ec5c5308d6dacf5f52f (patch) | |
| tree | 9ecff1866020093c495cd102c982a8bf49055f17 | |
| parent | a630c4f413f6af764e68210430e8b61a435d38d7 (diff) | |
| download | mruby-73bb30c2f4dba7c8da091ec5c5308d6dacf5f52f.tar.gz mruby-73bb30c2f4dba7c8da091ec5c5308d6dacf5f52f.zip | |
Copy over INSTANCE_TT when duping class
| -rw-r--r-- | src/kernel.c | 1 | ||||
| -rw-r--r-- | test/t/kernel.rb | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/kernel.c b/src/kernel.c index 74254e636..c63e05596 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -285,6 +285,7 @@ copy_class(mrb_state *mrb, mrb_value dst, mrb_value src) } dc->mt = kh_copy(mt, mrb, sc->mt); dc->super = sc->super; + MRB_SET_INSTANCE_TT(dc, MRB_INSTANCE_TT(sc)); } static void diff --git a/test/t/kernel.rb b/test/t/kernel.rb index 927166283..d240e59dc 100644 --- a/test/t/kernel.rb +++ b/test/t/kernel.rb @@ -221,6 +221,14 @@ assert('Kernel#dup', '15.3.1.3.9') do assert_false c.respond_to?(:test) end +assert('Kernel#dup class') do + assert_nothing_raised do + Array.dup.new(200) + Range.dup.new(2, 3) + String.dup.new("a"*50) + end +end + # Kernel#eval is provided by mruby-eval mrbgem '15.3.1.3.12' assert('Kernel#extend', '15.3.1.3.13') do |
