From aad5139884ad055d8aafb4316360e9f486b2d452 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 18 May 2011 13:47:54 -0700 Subject: [PATCH] copy_stream: small cleanup for pipe splicing No need to loop on IO::Splice.full, it already loops internally whenever it makes sense. --- lib/io/splice.rb | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/lib/io/splice.rb b/lib/io/splice.rb index 4b666f8..84bca5e 100644 --- a/lib/io/splice.rb +++ b/lib/io/splice.rb @@ -47,14 +47,11 @@ module IO::Splice src, dst = src.to_io, dst.to_io if src.stat.pipe? || dst.stat.pipe? - if len - len -= full(src, dst, len, src_offset) until len == 0 - else - rv = 0 - while n = partial(src, dst, PIPE_CAPA, src_offset) - rv += n - src_offset += n if src_offset - end + return full(src, dst, len, src_offset) if len + rv = 0 + while n = partial(src, dst, PIPE_CAPA, src_offset) + rv += n + src_offset += n if src_offset end else r, w = tmp = IO.pipe -- 2.11.4.GIT