summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorglass <glass@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-11-04 02:56:11 +0000
committerglass <glass@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-11-04 02:56:11 +0000
commit2142287c8696f5c8b1ca8e68c557ff61ab921f8e (patch)
tree154cdea3a31632427ff58d2ffafa54a3da2bd794 /lib
parenta28a060db41415c1c1dad3e554ff2c865a20ebca (diff)
* lib/fileutils.rb (module FileUtils): repatch [ruby-core:39622]
[Feature #5337]. improve performance of FileUtils.compare_stream. [ruby-core:47545] [Feature #7028] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r--lib/fileutils.rb17
1 files changed, 7 insertions, 10 deletions
diff --git a/lib/fileutils.rb b/lib/fileutils.rb
index 67cc79f02f..3d74eac385 100644
--- a/lib/fileutils.rb
+++ b/lib/fileutils.rb
@@ -894,16 +894,13 @@ public
#
def compare_stream(a, b)
bsize = fu_stream_blksize(a, b)
- sa = sb = nil
- while sa == sb
- sa = a.read(bsize)
- sb = b.read(bsize)
- unless sa and sb
- if sa.nil? and sb.nil?
- return true
- end
- end
- end
+ sa = ""
+ sb = ""
+ begin
+ a.read(bsize, sa)
+ b.read(bsize, sb)
+ return true if sa.empty? && sb.empty?
+ end while sa == sb
false
end