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