summaryrefslogtreecommitdiffstats
path: root/enumerator.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-19 06:37:41 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-19 06:37:41 +0000
commitd11abad5f03d12dc91e7d7fde56628a5ed63cb7c (patch)
tree93c65df828ff4320bccd54a3fc7b3fd934477c8f /enumerator.c
parent5ac2d4276a8d1326ac4438abb5a311d82c2b8dcd (diff)
downloadruby-d11abad5f03d12dc91e7d7fde56628a5ed63cb7c.tar.gz
ruby-d11abad5f03d12dc91e7d7fde56628a5ed63cb7c.tar.xz
ruby-d11abad5f03d12dc91e7d7fde56628a5ed63cb7c.zip
* insnhelper.ci (vm_yield_with_cfunc): call cfunc with
(argv[0], data, argc, argv) to pass all arguments. * eval.c (loop_i): adapted to new calling convention. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'enumerator.c')
-rw-r--r--enumerator.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/enumerator.c b/enumerator.c
index ea4fb9e57..e348e68aa 100644
--- a/enumerator.c
+++ b/enumerator.c
@@ -225,14 +225,9 @@ enumerator_allocate(VALUE klass)
}
static VALUE
-enumerator_each_i(VALUE v, VALUE enum_obj, VALUE argc)
+enumerator_each_i(VALUE v, VALUE enum_obj, int argc, VALUE *argv)
{
- if (argc == 1) {
- return rb_yield(v);
- }
- else {
- return rb_yield_values2(argc, RARRAY_PTR(v));
- }
+ return rb_yield_values2(argc, argv);
}
static VALUE