From: nobu.nakada@... Date: 2002-11-06T20:16:49+09:00 Subject: [ruby-dev:18663] Re: ENABLE/DISABLE_TRACE (was Re: source file name at -r option) なかだです。 At Wed, 6 Nov 2002 19:34:04 +0900, NAKAMURA, Hiroshi wrote: > ところで、他のところのold_tracingはvolatileついてますが、 > これは何故なんでしょう。また、今回追加した部分も > volatileにする必要はありますか? つけ忘れました。というかEXEC_TAG()の外側で復帰しないといけませ んでした。 # 大会ボケ やや余分に退避/復帰してますが、さほど大きな影響はないのではない かと。 Index: eval.c =================================================================== RCS file: /cvs/ruby/src/ruby/eval.c,v retrieving revision 1.348 diff -u -2 -p -r1.348 eval.c --- eval.c 3 Nov 2002 11:04:16 -0000 1.348 +++ eval.c 6 Nov 2002 11:11:27 -0000 @@ -3795,4 +3795,5 @@ rb_yield_0(val, self, klass, pcall) { NODE *node; + volatile int old_tracing = tracing; volatile VALUE result = Qnil; volatile VALUE old_cref; @@ -3877,4 +3878,5 @@ rb_yield_0(val, self, klass, pcall) } else { + ENABLE_TRACE(); result = rb_eval(self, node); } @@ -3902,4 +3904,5 @@ rb_yield_0(val, self, klass, pcall) POP_TAG(); POP_ITER(); + tracing = old_tracing; pop_state: POP_CLASS(); -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦