From ccc69882c6ec4fb8286282313620bceac32e592d Mon Sep 17 00:00:00 2001 From: Winfield Peterson Date: Thu, 30 Nov 2017 10:36:20 -0500 Subject: Axlsx.sanitize() writes in place or copies on write Depending on whether a string is frozen, either a new string is created sanitized or the existing string is modified in place. --- lib/axlsx.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/axlsx.rb b/lib/axlsx.rb index 20b5cab0..586562f6 100644 --- a/lib/axlsx.rb +++ b/lib/axlsx.rb @@ -136,8 +136,12 @@ module Axlsx # @param [String] str The string to process # @return [String] def self.sanitize(str) - str.delete(CONTROL_CHARS) - str + if str.frozen? + str.delete(CONTROL_CHARS) + else + str.delete!(CONTROL_CHARS) + str + end end # If value is boolean return 1 or 0 -- cgit v1.2.3