1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* eval.c (rb_eval): Call trace hook for if expression after the

condition has been evaluated, not before; submitted by Rocky
  Bernstein in #18722.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
knu 2008-03-24 11:09:51 +00:00
parent ffb7aaebc2
commit 058c981311
2 changed files with 12 additions and 3 deletions

View file

@ -1,3 +1,9 @@
Mon Mar 24 20:07:42 2008 Akinori MUSHA <knu@iDaemons.org>
* eval.c (rb_eval): Call trace hook for if expression after the
condition has been evaluated, not before; submitted by Rocky
Bernstein in #18722.
Mon Mar 24 19:44:53 2008 Akinori MUSHA <knu@iDaemons.org>
* parse.y (yycompile): Always prepare a new array for each file's

9
eval.c
View file

@ -3038,13 +3038,16 @@ rb_eval(self, n)
RETURN(Qfalse);
case NODE_IF:
EXEC_EVENT_HOOK(RUBY_EVENT_LINE, node, self,
ruby_frame->last_func,
ruby_frame->last_class);
if (RTEST(rb_eval(self, node->nd_cond))) {
EXEC_EVENT_HOOK(RUBY_EVENT_LINE, node, self,
ruby_frame->last_func,
ruby_frame->last_class);
node = node->nd_body;
}
else {
EXEC_EVENT_HOOK(RUBY_EVENT_LINE, node, self,
ruby_frame->last_func,
ruby_frame->last_class);
node = node->nd_else;
}
goto again;