From be227c54827cdc75d1ee990dcca8b033e7e46aef Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 30 Jun 2005 06:20:09 +0000 Subject: * eval.c (rb_eval): pre-evaluate argument for unambiguous evaluation order. [ruby-dev:26383] * lib/delegate.rb (Delegator::method_missing): forward unknown method to the destination. suggested by . [ruby-talk:146776] * process.c (detach_process_watcher): terminate process watcher thread right after rb_waitpid() succeed. [ruby-talk:146430] git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@8676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- eval.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index 886914c42..287d00bf4 100644 --- a/eval.c +++ b/eval.c @@ -3256,9 +3256,11 @@ rb_eval(self, n) case NODE_DOT2: case NODE_DOT3: - result = rb_range_new(rb_eval(self, node->nd_beg), - rb_eval(self, node->nd_end), - nd_type(node) == NODE_DOT3); + { + VALUE beg = rb_eval(self, node->nd_beg); + VALUE end = rb_eval(self, node->nd_end); + result = rb_range_new(beg, end, nd_type(node) == NODE_DOT3); + } break; case NODE_FLIP2: /* like AWK */ @@ -9905,9 +9907,9 @@ rb_gc_mark_threads() rb_gc_mark((VALUE)ruby_cref); if (!curr_thread) return; - FOREACH_THREAD(th) { + FOREACH_THREAD_FROM(main_thread, th) { rb_gc_mark(th->thread); - } END_FOREACH(th); + } END_FOREACH_FROM(main_thread, th); } static void -- cgit