なかだです。

At Tue, 21 Oct 2003 14:42:13 +0000,
matz wrote:
> 
> matz        Tue, 21 Oct 2003 14:42:13 +0000
> 
>   Modified files:
>     ruby:
>       ChangeLog eval.c file.c
>   Log:
>     * eval.c (ruby_cleanup): call finalizers and exit procs before
>       terminating threads.
>     
>     * eval.c (ruby_cleanup): preserve ruby_errinfo before ruby_finalize_0().

END{}の中でのexitの引数が無視されるようになっています。


Index: eval.c =================================================================== RCS file: /cvs/ruby/src/ruby/eval.c,v retrieving revision 1.571 diff -u -2 -p -r1.571 eval.c --- eval.c 21 Oct 2003 14:42:12 -0000 1.571 +++ eval.c 21 Oct 2003 15:46:32 -0000 @@ -1345,8 +1345,9 @@ ruby_cleanup(ex) { int state; - volatile VALUE err = ruby_errinfo; + volatile VALUE err = ruby_errinfo, err2; ruby_safe_level = 0; ruby_finalize_0(); + err2 = ruby_errinfo; PUSH_TAG(PROT_NONE); PUSH_ITER(ITER_NOT); @@ -1364,6 +1365,6 @@ ruby_cleanup(ex) ruby_finalize_1(); - if (err && rb_obj_is_kind_of(err, rb_eSystemExit)) { - VALUE st = rb_iv_get(err, "status"); + if (err2 && rb_obj_is_kind_of(err2, rb_eSystemExit)) { + VALUE st = rb_iv_get(err2, "status"); return NUM2INT(st); }
-- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦