diff options
author | knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-04-21 09:43:44 +0000 |
---|---|---|
committer | knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-04-21 09:43:44 +0000 |
commit | 7f6df101caca14f3bc68226ff33b7301ffbe6d74 (patch) | |
tree | b3117987ebd279a77401d5f638cce8e2bbc37d35 /enumerator.c | |
parent | c2ace60b081c587532ba01ffebd6f4c1fe84e643 (diff) |
Merge from ruby_1_8.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@16127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'enumerator.c')
-rw-r--r-- | enumerator.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/enumerator.c b/enumerator.c index 6702bca1cd..4a5e88f6ac 100644 --- a/enumerator.c +++ b/enumerator.c @@ -38,7 +38,7 @@ proc_call(proc, args) struct enumerator { VALUE obj; - VALUE meth; + ID meth; VALUE proc; VALUE args; rb_block_call_func *iter; @@ -51,7 +51,6 @@ enumerator_mark(p) { struct enumerator *ptr = p; rb_gc_mark(ptr->obj); - rb_gc_mark(ptr->meth); rb_gc_mark(ptr->proc); rb_gc_mark(ptr->args); } @@ -258,7 +257,7 @@ enumerator_init(enum_obj, obj, meth, argc, argv) struct enumerator *ptr = enumerator_ptr(enum_obj); ptr->obj = obj; - ptr->meth = meth; + ptr->meth = rb_to_id(meth); if (rb_block_given_p()) { ptr->proc = rb_block_proc(); ptr->iter = enumerator_iter_i; @@ -357,7 +356,7 @@ enumerator_each(obj) argc = RARRAY_LEN(e->args); argv = RARRAY_PTR(e->args); } - return rb_block_call(e->obj, rb_to_id(e->meth), argc, argv, e->iter, (VALUE)e); + return rb_block_call(e->obj, e->meth, argc, argv, e->iter, (VALUE)e); } static VALUE @@ -393,7 +392,7 @@ enumerator_with_index(obj) argc = RARRAY_LEN(e->args); argv = RARRAY_PTR(e->args); } - return rb_block_call(e->obj, rb_to_id(e->meth), argc, argv, + return rb_block_call(e->obj, e->meth, argc, argv, enumerator_with_index_i, (VALUE)&memo); } |