diff options
author | glass <glass@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-11-04 02:56:11 +0000 |
---|---|---|
committer | glass <glass@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-11-04 02:56:11 +0000 |
commit | 2142287c8696f5c8b1ca8e68c557ff61ab921f8e (patch) | |
tree | 154cdea3a31632427ff58d2ffafa54a3da2bd794 /lib | |
parent | a28a060db41415c1c1dad3e554ff2c865a20ebca (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.rb | 17 |
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 |