From 6eb02a892dbd0f0631c0362805fa995194290611 Mon Sep 17 00:00:00 2001 From: ksss Date: Wed, 15 Mar 2017 16:48:47 +0900 Subject: Use duplicated object for block args --- mrblib/string.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'mrblib') diff --git a/mrblib/string.rb b/mrblib/string.rb index 7add360a8..5510bf6de 100644 --- a/mrblib/string.rb +++ b/mrblib/string.rb @@ -11,11 +11,12 @@ class String # ISO 15.2.10.5.15 def each_line(&block) offset = 0 - while pos = self.index("\n", offset) - block.call(self[offset, pos + 1 - offset]) + this = dup + while pos = this.index("\n", offset) + block.call(this[offset, pos + 1 - offset]) offset = pos + 1 end - block.call(self[offset, self.size - offset]) if self.size > offset + block.call(this[offset, this.size - offset]) if this.size > offset self end -- cgit v1.2.3