diff options
author | John Hawthorn <john@hawthorn.email> | 2022-11-22 14:28:22 -0800 |
---|---|---|
committer | John Hawthorn <john@hawthorn.email> | 2022-12-01 15:37:15 -0800 |
commit | da204d2eee51082854ff6ec89eacea2911ea1590 (patch) | |
tree | 90f552440b737126900d8cb173d414f584f4339e | |
parent | 171e94bd953b381b2d19e56cf04eadac436f7a31 (diff) | |
download | ruby-da204d2eee51082854ff6ec89eacea2911ea1590.tar.gz |
Inherit max_iv_count from superclass
In 274870bd5434ab64ac3a3c9db9aa27d262c1d6d6 we gained the ability to
make an educated guess at the max_iv_count of a class based on its
initialize method. This commit makes subclasses inherit their super's
max_iv_count, which makes the estimate work in cases that the subclass
does not have an initialize method.
-rw-r--r-- | class.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -326,7 +326,13 @@ rb_class_new(VALUE super) { Check_Type(super, T_CLASS); rb_check_inheritable(super); - return rb_class_boot(super); + VALUE klass = rb_class_boot(super); + + if (super != rb_cObject && super != rb_cBasicObject) { + RCLASS_EXT(klass)->max_iv_count = RCLASS_EXT(super)->max_iv_count; + } + + return klass; } VALUE |