diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-12-23 19:53:45 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-12-23 19:53:45 +0000 |
commit | 0a4fc3d71ba383af2eb2da62509d3c5537eebb68 (patch) | |
tree | b9353d3b26f0ff6144fc628574d90bec093b90d4 /eval.c | |
parent | a3ecd5c83d57fb1556a40113f1b0c69c87261e33 (diff) |
* io.c (read_all): do not return nil at the end of file.
[ruby-dev:22334]
* io.c (argf_read): do not depend on nil at eof behavior of
IO#read().
* eval.c (rb_thread_join): dup exception before re-raising it.
* io.c (rb_io_eof): call clearerr() to prevent side effect. this
patch is supplied by Masahiro Sakai <sakai@tom.sfc.keio.ac.jp>.
[ruby-dev:22234]
* pack.c (OFF16): get offset for big endian machines.
* pack.c (pack_pack): use OFF16 instead of OFF16B.
[ruby-dev:22344]
* pack.c (pack_unpack): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -9204,12 +9204,13 @@ rb_thread_join(th, limit) if (!NIL_P(th->errinfo) && (th->flags & THREAD_RAISED)) { VALUE oldbt = get_backtrace(th->errinfo); VALUE errat = make_backtrace(); + VALUE errinfo = rb_obj_dup(th->errinfo); if (TYPE(oldbt) == T_ARRAY && RARRAY(oldbt)->len > 0) { rb_ary_unshift(errat, rb_ary_entry(oldbt, 0)); } - set_backtrace(th->errinfo, errat); - rb_exc_raise(th->errinfo); + set_backtrace(errinfo, errat); + rb_exc_raise(errinfo); } return Qtrue; |