aboutsummaryrefslogtreecommitdiffstats
path: root/object.c
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-01-12 19:26:07 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-01-12 19:26:07 +0000
commit0686019ebcf1f733957a003c1454f023028a5bb7 (patch)
tree77f0f61e616de201741292cb653de80aee1c7f67 /object.c
parent6d90157aafb41bac9c6c818eff184ffd21f11227 (diff)
downloadruby-0686019ebcf1f733957a003c1454f023028a5bb7.tar.gz
resolve class name earlier and more consistently
This further avoids class name resolution issues which came about due to relying on hash table ordering before r53376. Pre-caching the class name when it is never used raises memory use, but the overall gain from moving away from st still gives us a small gain. Reverting r53376 and this patch and testing with "valgrind -v ./ruby -rrdoc -eexit" on x86 (32-bit) shows: before: in use at exit: 1,662,239 bytes in 25,286 blocks total heap usage: 49,514 allocs, 24,228 frees, 6,005,561 bytes allocated after, with this change: in use at exit: 1,646,529 bytes in 24,572 blocks total heap usage: 48,891 allocs, 24,319 frees, 6,003,921 bytes allocated * class.c (Init_class_hierarchy): resolve name for rb_cObject ASAP * object.c (rb_mod_const_set): move name resolution to rb_const_set * variable.c (rb_const_set): do class resolution here [ruby-core:72807] [Bug #11977] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'object.c')
-rw-r--r--object.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/object.c b/object.c
index 53354e928b..2497043b46 100644
--- a/object.c
+++ b/object.c
@@ -2178,13 +2178,6 @@ rb_mod_const_set(VALUE mod, VALUE name, VALUE value)
if (!id) id = rb_intern_str(name);
rb_const_set(mod, id, value);
- /*
- * Resolve and cache class name immediately to resolve ambiguity
- * and avoid order-dependency on const_tbl
- */
- if (RB_TYPE_P(value, T_MODULE) || RB_TYPE_P(value, T_CLASS)) {
- rb_class_name(value);
- }
return value;
}