aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
authorSam <sam.saffron@gmail.com>2018-02-15 18:14:57 +1100
committerGitHub <noreply@github.com>2018-02-15 18:14:57 +1100
commit0b9bf2e2df2f3e17cad25f4f5e5184fbd0191129 (patch)
treefafa1335652faf869f14074b72b84d806d2f9002 /activesupport
parent4865f6b58965078e314a22fdcefdf57ee56675b1 (diff)
downloadrails-0b9bf2e2df2f3e17cad25f4f5e5184fbd0191129.tar.gz
rails-0b9bf2e2df2f3e17cad25f4f5e5184fbd0191129.tar.bz2
rails-0b9bf2e2df2f3e17cad25f4f5e5184fbd0191129.zip
PERF: symbolize ivar, to reduce dupes
I noticed this in my memory profiler report. ``` 153 "@default_url_options" 152 /home/sam/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/activesupport-5.1.4/lib/active_support/core_ext/class/attribute.rb:84 ``` 152 copies of the string `@default_url_options` are retained on the heap in Discourse post boot. Since this is just used for ivar lookups there is no need to use a string.
Diffstat (limited to 'activesupport')
-rw-r--r--activesupport/lib/active_support/core_ext/class/attribute.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/core_ext/class/attribute.rb b/activesupport/lib/active_support/core_ext/class/attribute.rb
index 7928efb871..fa33ff945f 100644
--- a/activesupport/lib/active_support/core_ext/class/attribute.rb
+++ b/activesupport/lib/active_support/core_ext/class/attribute.rb
@@ -98,7 +98,7 @@ class Class
singleton_class.silence_redefinition_of_method("#{name}?")
define_singleton_method("#{name}?") { !!public_send(name) } if instance_predicate
- ivar = "@#{name}"
+ ivar = "@#{name}".to_sym
singleton_class.silence_redefinition_of_method("#{name}=")
define_singleton_method("#{name}=") do |val|