From e77e6e9d1237a6999a1e1bb6dcd2c7fa8e6187b4 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 28 Apr 2020 12:05:14 +0900 Subject: Fix `_read_buf` to be more efficient; fix #4982 The bug was introduced by #4712. The `getc' problem resurrected. It should be addressed soon. --- mrbgems/mruby-io/mrblib/io.rb | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/mrbgems/mruby-io/mrblib/io.rb b/mrbgems/mruby-io/mrblib/io.rb index c0cfdc403..ce33f2367 100644 --- a/mrbgems/mruby-io/mrblib/io.rb +++ b/mrbgems/mruby-io/mrblib/io.rb @@ -170,13 +170,8 @@ class IO end def _read_buf - return @buf if @buf && @buf.bytesize >= 4 # maximum UTF-8 character is 4 bytes - @buf ||= "" - begin - @buf += sysread(BUF_SIZE) - rescue EOFError => e - raise e if @buf.empty? - end + return @buf if @buf && @buf.bytesize > 0 + sysread(BUF_SIZE, @buf) end def ungetc(substr) -- cgit v1.2.3