ruby-changes:2076
From: ko1@a...
Date: 29 Sep 2007 17:17:59 +0900
Subject: [ruby-changes:2076] matz - Ruby:r13567 (trunk): * marshal.c (r_leave): move proc invocation from r_entry() to
matz 2007-09-29 17:17:48 +0900 (Sat, 29 Sep 2007) New Revision: 13567 Modified files: trunk/ChangeLog trunk/marshal.c Log: * marshal.c (r_leave): move proc invocation from r_entry() to avoid potential crash. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13567&r2=13566 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/marshal.c?r1=13567&r2=13566 Index: ChangeLog =================================================================== --- ChangeLog (revision 13566) +++ ChangeLog (revision 13567) @@ -1,3 +1,8 @@ +Sat Sep 29 17:14:44 2007 Yukihiro Matsumoto <matz@r...> + + * marshal.c (r_leave): move proc invocation from r_entry() to + avoid potential crash. + Sat Sep 29 12:28:08 2007 Tanaka Akira <akr@f...> * bootstraptest/runner.rb (assert_normal_exit): new method. Index: marshal.c =================================================================== --- marshal.c (revision 13566) +++ marshal.c (revision 13567) @@ -1016,9 +1016,6 @@ if ((VALUE)real_obj != Qundef) OBJ_TAINT((VALUE)real_obj); } - if (arg->proc) { - v = rb_funcall(arg->proc, rb_intern("call"), 1, v); - } return v; } @@ -1035,8 +1032,11 @@ compat->loader(real_obj, v); } st_delete(arg->compat_tbl, &key, 0); - return real_obj; + v = real_obj; } + if (arg->proc) { + v = rb_funcall(arg->proc, rb_intern("call"), 1, v); + } return v; } -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml