From 7b2ef5cabe08f2a3c8ea03ce36729f0bf3d0902f Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 23 Sep 2002 15:48:42 +0000 Subject: * eval.c (rb_call0): must not clear ruby_current_node, or backtrace cannot be genetated. * intern.h (ruby_yyparse): rather than yyparse(). * parse.y (yylex): nextc() returns -1 at end of input, not 0. * parse.y (newline_node): reduce deplicated newline node. * parse.y (literal_concat): get rid of warning. * parse.y (new_evstr): fixed junk code. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- eval.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index 1a9b77c54..fad145124 100644 --- a/eval.c +++ b/eval.c @@ -4501,21 +4501,18 @@ rb_call0(klass, recv, id, oid, argc, argv, body, nosuper) } if (trace_func) { int state; - NODE *volatile node = ruby_current_node; call_trace_func("c-call", ruby_current_node, recv, id, klass); - ruby_current_node = 0; PUSH_TAG(PROT_FUNC); if ((state = EXEC_TAG()) == 0) { result = call_cfunc(body->nd_cfnc, recv, len, argc, argv); } POP_TAG(); - ruby_current_node = node; + ruby_current_node = ruby_frame->node; call_trace_func("c-return", ruby_current_node, recv, id, klass); if (state) JUMP_TAG(state); } else { - ruby_current_node = 0; result = call_cfunc(body->nd_cfnc, recv, len, argc, argv); } } -- cgit