summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-11-14 00:26:26 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-11-14 00:26:26 +0000
commitf0208a8995473228b72e660e2b88e2489c4f4beb (patch)
tree670486ebbc5dcfc6ac6cec548436f8889043b8ec
parent30a69a5998b651508d3d6e4177dbec19ae44663b (diff)
vm_eval.c (rb_yield_splat): add missing GC guard
Nobody uses this function in our source tree, but maybe this bug is triggered by certain C extensions. [Bug #10509] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--vm_eval.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 36cfa73cc0..bd20f50970 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Fri Nov 14 09:25:44 2014 Eric Wong <e@80x24.org>
+
+ * vm_eval.c (rb_yield_splat): add missing GC guard
+ [Bug #10509]
+
Fri Nov 14 08:12:40 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
* gc.c: fix build error caused by implicit conversion with clang.
diff --git a/vm_eval.c b/vm_eval.c
index a057ece390..ee984c7402 100644
--- a/vm_eval.c
+++ b/vm_eval.c
@@ -989,6 +989,7 @@ rb_yield_splat(VALUE values)
rb_raise(rb_eArgError, "not an array");
}
v = rb_yield_0(RARRAY_LENINT(tmp), RARRAY_CONST_PTR(tmp));
+ RB_GC_GUARD(tmp);
return v;
}