From 2e75043a49d5277c04173ba2af233283ae26702d Mon Sep 17 00:00:00 2001 From: k0kubun Date: Sat, 27 May 2017 03:06:55 +0000 Subject: erb.rb: Use str_uplus instead of rb_str_dup to skip unnecessary string allocation on frozen_string_literal: false. str_uplus can bypass calling rb_str_dup when OBJ_FROZEN is true. * Before erb_render 1.064 * Afete erb_render 0.909 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/erb.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/erb.rb b/lib/erb.rb index dcd190fcbb..8a6c237f7b 100644 --- a/lib/erb.rb +++ b/lib/erb.rb @@ -280,7 +280,7 @@ class ERB # ERB#src: # # compiler = ERB::Compiler.new('<>') - # compiler.pre_cmd = ["_erbout=''.dup"] + # compiler.pre_cmd = ["_erbout=+''"] # compiler.put_cmd = "_erbout.<<" # compiler.insert_cmd = "_erbout.<<" # compiler.post_cmd = ["_erbout"] @@ -291,7 +291,7 @@ class ERB # Generates: # # #coding:UTF-8 - # _erbout=''.dup; _erbout.<< -"Got "; _erbout.<<(( obj ).to_s); _erbout.<< -"!\n"; _erbout + # _erbout=+''; _erbout.<< -"Got "; _erbout.<<(( obj ).to_s); _erbout.<< -"!\n"; _erbout # # By default the output is sent to the print method. For example: # @@ -861,7 +861,7 @@ class ERB def set_eoutvar(compiler, eoutvar = '_erbout') compiler.put_cmd = "#{eoutvar}.<<" compiler.insert_cmd = "#{eoutvar}.<<" - compiler.pre_cmd = ["#{eoutvar} = ''.dup"] + compiler.pre_cmd = ["#{eoutvar} = +''"] compiler.post_cmd = [eoutvar] end -- cgit v1.2.3