From 67b96135ddd2c6f3e6e142a7e5728d2b7f008856 Mon Sep 17 00:00:00 2001 From: evazion Date: Tue, 14 Dec 2021 17:03:54 -0600 Subject: [PATCH] Make Symbol#to_s return frozen string. Monkey-patch Symbol#to_s to return a frozen (immutable) string instead of a mutable string. This should reduce string allocations, and thereby reduce memory usage and garbage collector pressure, but it may be incompatible with libraries that expect Symbol#to_s to return a mutable string. https://bugs.ruby-lang.org/issues/16150 https://github.com/Shopify/symbol-fstring --- config/initializers/core_extensions.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/config/initializers/core_extensions.rb b/config/initializers/core_extensions.rb index 56b86e2a4..3cb5d9f70 100644 --- a/config/initializers/core_extensions.rb +++ b/config/initializers/core_extensions.rb @@ -62,3 +62,10 @@ end class String include Danbooru::Extensions::String end + +# Make Symbol#to_s return a frozen string. This reduces allocations, but may be +# incompatible with some libraries. +# +# https://bugs.ruby-lang.org/issues/16150 +# https://github.com/Shopify/symbol-fstring +Symbol.alias_method(:to_s, :name)