diff options
| author | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-12-20 12:31:26 +0000 |
|---|---|---|
| committer | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-12-20 12:31:26 +0000 |
| commit | 69c8fd073faf694a3443d14bca0b3a7eebd2dc26 (patch) | |
| tree | 833953f9dc255870f6cfa9d83cfa191459a70daf /enumerator.c | |
| parent | dccba5cced11535ea6bc249d07d96b330fdf6481 (diff) | |
| download | ruby-69c8fd073faf694a3443d14bca0b3a7eebd2dc26.tar.gz ruby-69c8fd073faf694a3443d14bca0b3a7eebd2dc26.tar.xz ruby-69c8fd073faf694a3443d14bca0b3a7eebd2dc26.zip | |
* vm_eval.c (rb_iterate): pass current block when the argument bl_proc
is NULL. This behavior can be used to make enumerator faster
[ruby-dev:39874]
* enumerator.c (enumerator_each): pass current block directly instead
of trampoline block (enumerator_each_i).
* io.c (argf_each_line, argf_each_byte, argf_each_char): ditto.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@26128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'enumerator.c')
| -rw-r--r-- | enumerator.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/enumerator.c b/enumerator.c index 7c50f3dda..34d16c057 100644 --- a/enumerator.c +++ b/enumerator.c @@ -330,12 +330,6 @@ enumerator_allocate(VALUE klass) } static VALUE -enumerator_each_i(VALUE v, VALUE enum_obj, int argc, VALUE *argv) -{ - return rb_yield_values2(argc, argv); -} - -static VALUE enumerator_init(VALUE enum_obj, VALUE obj, VALUE meth, int argc, VALUE *argv) { struct enumerator *ptr; @@ -473,7 +467,7 @@ static VALUE enumerator_each(VALUE obj) { if (!rb_block_given_p()) return obj; - return enumerator_block_call(obj, enumerator_each_i, obj); + return enumerator_block_call(obj, 0, obj); } static VALUE |
