From: Masaki Fukushima Date: 1999-06-18T15:29:55+09:00 Subject: [ruby-dev:7132] EOF during Marshal.load 福嶋です。 Marshal.load に対して、EOFに達しているIOを渡すと、 old marshal file format (can't read) (TypeError) という例外が発生しますが、以下のようにした方が分かり易いのではな いでしょうか。 Index: marshal.c =================================================================== RCS file: /home/cvs/ruby/marshal.c,v retrieving revision 1.1.1.2.2.6 diff -u -r1.1.1.2.2.6 marshal.c --- marshal.c 1999/06/09 09:21:15 1.1.1.2.2.6 +++ marshal.c 1999/06/18 06:27:51 @@ -838,6 +838,9 @@ } major = r_byte(&arg); + if (major == EOF) { + rb_eof_error(); + } if (major == MARSHAL_MAJOR) { if (r_byte(&arg) != MARSHAL_MINOR) { rb_warn("Old marshal file format (can be read)"); --- 福嶋正機