mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
use RARRAY_AREF instead of RARRAY_PTR_USE.
* enumerator.c (enum_chain_total_size): use RARRAY_AREF instead of RARRAY_PTR_USE because we don't need non-const ptr. * enumerator.c (enum_chain_each): ditto. * enumerator.c (enum_chain_rewind): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b65a43ca2f
commit
1e9896ae31
1 changed files with 20 additions and 28 deletions
16
enumerator.c
16
enumerator.c
|
@ -2530,12 +2530,10 @@ static VALUE
|
||||||
enum_chain_total_size(VALUE enums)
|
enum_chain_total_size(VALUE enums)
|
||||||
{
|
{
|
||||||
VALUE total = INT2FIX(0);
|
VALUE total = INT2FIX(0);
|
||||||
|
|
||||||
RARRAY_PTR_USE(enums, ptr, {
|
|
||||||
long i;
|
long i;
|
||||||
|
|
||||||
for (i = 0; i < RARRAY_LEN(enums); i++) {
|
for (i = 0; i < RARRAY_LEN(enums); i++) {
|
||||||
VALUE size = enum_size(ptr[i]);
|
VALUE size = enum_size(RARRAY_AREF(enums, i));
|
||||||
|
|
||||||
if (NIL_P(size) || (RB_TYPE_P(size, T_FLOAT) && isinf(NUM2DBL(size)))) {
|
if (NIL_P(size) || (RB_TYPE_P(size, T_FLOAT) && isinf(NUM2DBL(size)))) {
|
||||||
return size;
|
return size;
|
||||||
|
@ -2546,7 +2544,6 @@ enum_chain_total_size(VALUE enums)
|
||||||
|
|
||||||
total = rb_funcall(total, '+', 1, size);
|
total = rb_funcall(total, '+', 1, size);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
return total;
|
return total;
|
||||||
}
|
}
|
||||||
|
@ -2601,6 +2598,7 @@ enum_chain_each(int argc, VALUE *argv, VALUE obj)
|
||||||
{
|
{
|
||||||
VALUE enums, block;
|
VALUE enums, block;
|
||||||
struct enum_chain *objptr;
|
struct enum_chain *objptr;
|
||||||
|
long i;
|
||||||
|
|
||||||
RETURN_SIZED_ENUMERATOR(obj, argc, argv, argc > 0 ? enum_chain_enum_no_size : enum_chain_enum_size);
|
RETURN_SIZED_ENUMERATOR(obj, argc, argv, argc > 0 ? enum_chain_enum_no_size : enum_chain_enum_size);
|
||||||
|
|
||||||
|
@ -2608,14 +2606,11 @@ enum_chain_each(int argc, VALUE *argv, VALUE obj)
|
||||||
enums = objptr->enums;
|
enums = objptr->enums;
|
||||||
block = rb_block_proc();
|
block = rb_block_proc();
|
||||||
|
|
||||||
RARRAY_PTR_USE(enums, ptr, {
|
|
||||||
long i;
|
|
||||||
|
|
||||||
for (i = 0; i < RARRAY_LEN(enums); i++) {
|
for (i = 0; i < RARRAY_LEN(enums); i++) {
|
||||||
objptr->pos = i;
|
objptr->pos = i;
|
||||||
rb_block_call(ptr[i], id_each, argc, argv, enum_chain_yield_block, block);
|
rb_block_call(RARRAY_AREF(enums, i), id_each, argc, argv, enum_chain_yield_block, block);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
@ -2633,14 +2628,11 @@ enum_chain_rewind(VALUE obj)
|
||||||
{
|
{
|
||||||
struct enum_chain *objptr = enum_chain_ptr(obj);
|
struct enum_chain *objptr = enum_chain_ptr(obj);
|
||||||
VALUE enums = objptr->enums;
|
VALUE enums = objptr->enums;
|
||||||
|
|
||||||
RARRAY_PTR_USE(enums, ptr, {
|
|
||||||
long i;
|
long i;
|
||||||
|
|
||||||
for (i = objptr->pos; 0 <= i && i < RARRAY_LEN(enums); objptr->pos = --i) {
|
for (i = objptr->pos; 0 <= i && i < RARRAY_LEN(enums); objptr->pos = --i) {
|
||||||
rb_check_funcall(ptr[i], id_rewind, 0, 0);
|
rb_check_funcall(RARRAY_AREF(enums, i), id_rewind, 0, 0);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue