* *.c, parse.y, insns.def: use RARRAY_AREF/ASET macro

instead of using RARRAY_PTR().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2013-05-13 09:56:22 +00:00
parent 12bf73637b
commit aacd771046
33 changed files with 217 additions and 212 deletions

View File

@ -1,3 +1,8 @@
Mon May 13 18:44:14 2013 Koichi Sasada <ko1@atdot.net>
* *.c, parse.y, insns.def: use RARRAY_AREF/ASET macro
instead of using RARRAY_PTR().
Mon May 13 16:53:53 2013 Koichi Sasada <ko1@atdot.net> Mon May 13 16:53:53 2013 Koichi Sasada <ko1@atdot.net>
* include/ruby/ruby.h: add new utility macros to access * include/ruby/ruby.h: add new utility macros to access

112
array.c
View File

@ -440,7 +440,7 @@ rb_ary_new3(long n, ...)
va_start(ar, n); va_start(ar, n);
for (i=0; i<n; i++) { for (i=0; i<n; i++) {
RARRAY_PTR(ary)[i] = va_arg(ar, VALUE); RARRAY_ASET(ary, i, va_arg(ar, VALUE));
} }
va_end(ar); va_end(ar);
@ -742,7 +742,7 @@ rb_ary_store(VALUE ary, long idx, VALUE val)
if (idx >= RARRAY_LEN(ary)) { if (idx >= RARRAY_LEN(ary)) {
ARY_SET_LEN(ary, idx + 1); ARY_SET_LEN(ary, idx + 1);
} }
RARRAY_PTR(ary)[idx] = val; RARRAY_ASET(ary, idx, val);
} }
static VALUE static VALUE
@ -825,7 +825,7 @@ rb_ary_push(VALUE ary, VALUE item)
long idx = RARRAY_LEN(ary); long idx = RARRAY_LEN(ary);
ary_ensure_room_for_push(ary, 1); ary_ensure_room_for_push(ary, 1);
RARRAY_PTR(ary)[idx] = item; RARRAY_ASET(ary, idx, item);
ARY_SET_LEN(ary, idx + 1); ARY_SET_LEN(ary, idx + 1);
return ary; return ary;
} }
@ -838,7 +838,7 @@ rb_ary_push_1(VALUE ary, VALUE item)
if (idx >= ARY_CAPA(ary)) { if (idx >= ARY_CAPA(ary)) {
ary_double_capa(ary, idx); ary_double_capa(ary, idx);
} }
RARRAY_PTR(ary)[idx] = item; RARRAY_ASET(ary, idx, item);
ARY_SET_LEN(ary, idx + 1); ARY_SET_LEN(ary, idx + 1);
return ary; return ary;
} }
@ -890,7 +890,7 @@ rb_ary_pop(VALUE ary)
} }
n = RARRAY_LEN(ary)-1; n = RARRAY_LEN(ary)-1;
ARY_SET_LEN(ary, n); ARY_SET_LEN(ary, n);
return RARRAY_PTR(ary)[n]; return RARRAY_AREF(ary, n);
} }
/* /*
@ -933,7 +933,7 @@ rb_ary_shift(VALUE ary)
rb_ary_modify_check(ary); rb_ary_modify_check(ary);
if (RARRAY_LEN(ary) == 0) return Qnil; if (RARRAY_LEN(ary) == 0) return Qnil;
top = RARRAY_PTR(ary)[0]; top = RARRAY_AREF(ary, 0);
if (!ARY_SHARED_P(ary)) { if (!ARY_SHARED_P(ary)) {
if (RARRAY_LEN(ary) < ARY_DEFAULT_SIZE) { if (RARRAY_LEN(ary) < ARY_DEFAULT_SIZE) {
MEMMOVE(RARRAY_PTR(ary), RARRAY_PTR(ary)+1, VALUE, RARRAY_LEN(ary)-1); MEMMOVE(RARRAY_PTR(ary), RARRAY_PTR(ary)+1, VALUE, RARRAY_LEN(ary)-1);
@ -942,11 +942,11 @@ rb_ary_shift(VALUE ary)
} }
assert(!ARY_EMBED_P(ary)); /* ARY_EMBED_LEN_MAX < ARY_DEFAULT_SIZE */ assert(!ARY_EMBED_P(ary)); /* ARY_EMBED_LEN_MAX < ARY_DEFAULT_SIZE */
RARRAY_PTR(ary)[0] = Qnil; RARRAY_ASET(ary, 0, Qnil);
ary_make_shared(ary); ary_make_shared(ary);
} }
else if (ARY_SHARED_NUM(ARY_SHARED(ary)) == 1) { else if (ARY_SHARED_NUM(ARY_SHARED(ary)) == 1) {
RARRAY_PTR(ary)[0] = Qnil; RARRAY_ASET(ary, 0, Qnil);
} }
ARY_INCREASE_PTR(ary, 1); /* shift ptr */ ARY_INCREASE_PTR(ary, 1); /* shift ptr */
ARY_INCREASE_LEN(ary, -1); ARY_INCREASE_LEN(ary, -1);
@ -1095,7 +1095,7 @@ rb_ary_elt(VALUE ary, long offset)
if (offset < 0 || RARRAY_LEN(ary) <= offset) { if (offset < 0 || RARRAY_LEN(ary) <= offset) {
return Qnil; return Qnil;
} }
return RARRAY_PTR(ary)[offset]; return RARRAY_AREF(ary, offset);
} }
VALUE VALUE
@ -1233,7 +1233,7 @@ rb_ary_first(int argc, VALUE *argv, VALUE ary)
{ {
if (argc == 0) { if (argc == 0) {
if (RARRAY_LEN(ary) == 0) return Qnil; if (RARRAY_LEN(ary) == 0) return Qnil;
return RARRAY_PTR(ary)[0]; return RARRAY_AREF(ary, 0);
} }
else { else {
return ary_take_first_or_last(argc, argv, ary, ARY_TAKE_FIRST); return ary_take_first_or_last(argc, argv, ary, ARY_TAKE_FIRST);
@ -1260,7 +1260,7 @@ rb_ary_last(int argc, VALUE *argv, VALUE ary)
{ {
if (argc == 0) { if (argc == 0) {
if (RARRAY_LEN(ary) == 0) return Qnil; if (RARRAY_LEN(ary) == 0) return Qnil;
return RARRAY_PTR(ary)[RARRAY_LEN(ary)-1]; return RARRAY_AREF(ary, RARRAY_LEN(ary)-1);
} }
else { else {
return ary_take_first_or_last(argc, argv, ary, ARY_TAKE_LAST); return ary_take_first_or_last(argc, argv, ary, ARY_TAKE_LAST);
@ -1315,7 +1315,7 @@ rb_ary_fetch(int argc, VALUE *argv, VALUE ary)
} }
return ifnone; return ifnone;
} }
return RARRAY_PTR(ary)[idx]; return RARRAY_AREF(ary, idx);
} }
/* /*
@ -1353,7 +1353,7 @@ rb_ary_index(int argc, VALUE *argv, VALUE ary)
if (argc == 0) { if (argc == 0) {
RETURN_ENUMERATOR(ary, 0, 0); RETURN_ENUMERATOR(ary, 0, 0);
for (i=0; i<RARRAY_LEN(ary); i++) { for (i=0; i<RARRAY_LEN(ary); i++) {
if (RTEST(rb_yield(RARRAY_PTR(ary)[i]))) { if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) {
return LONG2NUM(i); return LONG2NUM(i);
} }
} }
@ -1363,7 +1363,7 @@ rb_ary_index(int argc, VALUE *argv, VALUE ary)
if (rb_block_given_p()) if (rb_block_given_p())
rb_warn("given block not used"); rb_warn("given block not used");
for (i=0; i<RARRAY_LEN(ary); i++) { for (i=0; i<RARRAY_LEN(ary); i++) {
if (rb_equal(RARRAY_PTR(ary)[i], val)) if (rb_equal(RARRAY_AREF(ary, i), val))
return LONG2NUM(i); return LONG2NUM(i);
} }
return Qnil; return Qnil;
@ -1402,7 +1402,7 @@ rb_ary_rindex(int argc, VALUE *argv, VALUE ary)
if (argc == 0) { if (argc == 0) {
RETURN_ENUMERATOR(ary, 0, 0); RETURN_ENUMERATOR(ary, 0, 0);
while (i--) { while (i--) {
if (RTEST(rb_yield(RARRAY_PTR(ary)[i]))) if (RTEST(rb_yield(RARRAY_AREF(ary, i))))
return LONG2NUM(i); return LONG2NUM(i);
if (i > RARRAY_LEN(ary)) { if (i > RARRAY_LEN(ary)) {
i = RARRAY_LEN(ary); i = RARRAY_LEN(ary);
@ -1414,7 +1414,7 @@ rb_ary_rindex(int argc, VALUE *argv, VALUE ary)
if (rb_block_given_p()) if (rb_block_given_p())
rb_warn("given block not used"); rb_warn("given block not used");
while (i--) { while (i--) {
if (rb_equal(RARRAY_PTR(ary)[i], val)) if (rb_equal(RARRAY_AREF(ary, i), val))
return LONG2NUM(i); return LONG2NUM(i);
if (i > RARRAY_LEN(ary)) { if (i > RARRAY_LEN(ary)) {
i = RARRAY_LEN(ary); i = RARRAY_LEN(ary);
@ -1676,7 +1676,7 @@ rb_ary_each(VALUE array)
RETURN_SIZED_ENUMERATOR(ary, 0, 0, rb_ary_length); RETURN_SIZED_ENUMERATOR(ary, 0, 0, rb_ary_length);
for (i=0; i<RARRAY_LEN(ary); i++) { for (i=0; i<RARRAY_LEN(ary); i++) {
rb_yield(RARRAY_PTR(ary)[i]); rb_yield(RARRAY_AREF(ary, i));
} }
return ary; return ary;
} }
@ -1734,7 +1734,7 @@ rb_ary_reverse_each(VALUE ary)
RETURN_SIZED_ENUMERATOR(ary, 0, 0, rb_ary_length); RETURN_SIZED_ENUMERATOR(ary, 0, 0, rb_ary_length);
len = RARRAY_LEN(ary); len = RARRAY_LEN(ary);
while (len--) { while (len--) {
rb_yield(RARRAY_PTR(ary)[len]); rb_yield(RARRAY_AREF(ary, len));
if (RARRAY_LEN(ary) < len) { if (RARRAY_LEN(ary) < len) {
len = RARRAY_LEN(ary); len = RARRAY_LEN(ary);
} }
@ -1819,9 +1819,9 @@ ary_join_0(VALUE ary, VALUE sep, long max, VALUE result)
long i; long i;
VALUE val; VALUE val;
if (max > 0) rb_enc_copy(result, RARRAY_PTR(ary)[0]); if (max > 0) rb_enc_copy(result, RARRAY_AREF(ary, 0));
for (i=0; i<max; i++) { for (i=0; i<max; i++) {
val = RARRAY_PTR(ary)[i]; val = RARRAY_AREF(ary, i);
if (i > 0 && !NIL_P(sep)) if (i > 0 && !NIL_P(sep))
rb_str_buf_append(result, sep); rb_str_buf_append(result, sep);
rb_str_buf_append(result, val); rb_str_buf_append(result, val);
@ -1839,7 +1839,7 @@ ary_join_1(VALUE obj, VALUE ary, VALUE sep, long i, VALUE result, int *first)
if (i > 0 && !NIL_P(sep)) if (i > 0 && !NIL_P(sep))
rb_str_buf_append(result, sep); rb_str_buf_append(result, sep);
val = RARRAY_PTR(ary)[i]; val = RARRAY_AREF(ary, i);
if (RB_TYPE_P(val, T_STRING)) { if (RB_TYPE_P(val, T_STRING)) {
str_join: str_join:
rb_str_buf_append(result, val); rb_str_buf_append(result, val);
@ -1900,7 +1900,7 @@ rb_ary_join(VALUE ary, VALUE sep)
len += RSTRING_LEN(sep) * (RARRAY_LEN(ary) - 1); len += RSTRING_LEN(sep) * (RARRAY_LEN(ary) - 1);
} }
for (i=0; i<RARRAY_LEN(ary); i++) { for (i=0; i<RARRAY_LEN(ary); i++) {
val = RARRAY_PTR(ary)[i]; val = RARRAY_AREF(ary, i);
tmp = rb_check_string_type(val); tmp = rb_check_string_type(val);
if (NIL_P(tmp) || tmp != val) { if (NIL_P(tmp) || tmp != val) {
@ -1961,7 +1961,7 @@ inspect_ary(VALUE ary, VALUE dummy, int recur)
if (recur) return rb_usascii_str_new_cstr("[...]"); if (recur) return rb_usascii_str_new_cstr("[...]");
str = rb_str_buf_new2("["); str = rb_str_buf_new2("[");
for (i=0; i<RARRAY_LEN(ary); i++) { for (i=0; i<RARRAY_LEN(ary); i++) {
s = rb_inspect(RARRAY_PTR(ary)[i]); s = rb_inspect(RARRAY_AREF(ary, i));
if (OBJ_TAINTED(s)) tainted = TRUE; if (OBJ_TAINTED(s)) tainted = TRUE;
if (OBJ_UNTRUSTED(s)) untrust = TRUE; if (OBJ_UNTRUSTED(s)) untrust = TRUE;
if (i > 0) rb_str_buf_cat2(str, ", "); if (i > 0) rb_str_buf_cat2(str, ", ");
@ -2539,7 +2539,7 @@ rb_ary_collect(VALUE ary)
RETURN_SIZED_ENUMERATOR(ary, 0, 0, rb_ary_length); RETURN_SIZED_ENUMERATOR(ary, 0, 0, rb_ary_length);
collect = rb_ary_new2(RARRAY_LEN(ary)); collect = rb_ary_new2(RARRAY_LEN(ary));
for (i = 0; i < RARRAY_LEN(ary); i++) { for (i = 0; i < RARRAY_LEN(ary); i++) {
rb_ary_push(collect, rb_yield(RARRAY_PTR(ary)[i])); rb_ary_push(collect, rb_yield(RARRAY_AREF(ary, i)));
} }
return collect; return collect;
} }
@ -2572,7 +2572,7 @@ rb_ary_collect_bang(VALUE ary)
RETURN_SIZED_ENUMERATOR(ary, 0, 0, rb_ary_length); RETURN_SIZED_ENUMERATOR(ary, 0, 0, rb_ary_length);
rb_ary_modify(ary); rb_ary_modify(ary);
for (i = 0; i < RARRAY_LEN(ary); i++) { for (i = 0; i < RARRAY_LEN(ary); i++) {
rb_ary_store(ary, i, rb_yield(RARRAY_PTR(ary)[i])); rb_ary_store(ary, i, rb_yield(RARRAY_AREF(ary, i)));
} }
return ary; return ary;
} }
@ -2655,7 +2655,7 @@ rb_ary_select(VALUE ary)
RETURN_SIZED_ENUMERATOR(ary, 0, 0, rb_ary_length); RETURN_SIZED_ENUMERATOR(ary, 0, 0, rb_ary_length);
result = rb_ary_new2(RARRAY_LEN(ary)); result = rb_ary_new2(RARRAY_LEN(ary));
for (i = 0; i < RARRAY_LEN(ary); i++) { for (i = 0; i < RARRAY_LEN(ary); i++) {
if (RTEST(rb_yield(RARRAY_PTR(ary)[i]))) { if (RTEST(rb_yield(RARRAY_AREF(ary, i)))) {
rb_ary_push(result, rb_ary_elt(ary, i)); rb_ary_push(result, rb_ary_elt(ary, i));
} }
} }
@ -2686,7 +2686,7 @@ rb_ary_select_bang(VALUE ary)
RETURN_SIZED_ENUMERATOR(ary, 0, 0, rb_ary_length); RETURN_SIZED_ENUMERATOR(ary, 0, 0, rb_ary_length);
rb_ary_modify(ary); rb_ary_modify(ary);
for (i1 = i2 = 0; i1 < RARRAY_LEN(ary); i1++) { for (i1 = i2 = 0; i1 < RARRAY_LEN(ary); i1++) {
VALUE v = RARRAY_PTR(ary)[i1]; VALUE v = RARRAY_AREF(ary, i1);
if (!RTEST(rb_yield(v))) continue; if (!RTEST(rb_yield(v))) continue;
if (i1 != i2) { if (i1 != i2) {
rb_ary_store(ary, i2, v); rb_ary_store(ary, i2, v);
@ -2764,7 +2764,7 @@ rb_ary_delete(VALUE ary, VALUE item)
long i1, i2; long i1, i2;
for (i1 = i2 = 0; i1 < RARRAY_LEN(ary); i1++) { for (i1 = i2 = 0; i1 < RARRAY_LEN(ary); i1++) {
VALUE e = RARRAY_PTR(ary)[i1]; VALUE e = RARRAY_AREF(ary, i1);
if (rb_equal(e, item)) { if (rb_equal(e, item)) {
v = e; v = e;
@ -2793,7 +2793,7 @@ rb_ary_delete_same(VALUE ary, VALUE item)
long i1, i2; long i1, i2;
for (i1 = i2 = 0; i1 < RARRAY_LEN(ary); i1++) { for (i1 = i2 = 0; i1 < RARRAY_LEN(ary); i1++) {
VALUE e = RARRAY_PTR(ary)[i1]; VALUE e = RARRAY_AREF(ary, i1);
if (e == item) { if (e == item) {
continue; continue;
@ -2823,7 +2823,7 @@ rb_ary_delete_at(VALUE ary, long pos)
} }
rb_ary_modify(ary); rb_ary_modify(ary);
del = RARRAY_PTR(ary)[pos]; del = RARRAY_AREF(ary, pos);
MEMMOVE(RARRAY_PTR(ary)+pos, RARRAY_PTR(ary)+pos+1, VALUE, MEMMOVE(RARRAY_PTR(ary)+pos, RARRAY_PTR(ary)+pos+1, VALUE,
RARRAY_LEN(ary)-pos-1); RARRAY_LEN(ary)-pos-1);
ARY_INCREASE_LEN(ary, -1); ARY_INCREASE_LEN(ary, -1);
@ -2930,7 +2930,7 @@ ary_reject(VALUE orig, VALUE result)
long i; long i;
for (i = 0; i < RARRAY_LEN(orig); i++) { for (i = 0; i < RARRAY_LEN(orig); i++) {
VALUE v = RARRAY_PTR(orig)[i]; VALUE v = RARRAY_AREF(orig, i);
if (!RTEST(rb_yield(v))) { if (!RTEST(rb_yield(v))) {
rb_ary_push_1(result, v); rb_ary_push_1(result, v);
} }
@ -2946,7 +2946,7 @@ ary_reject_bang(VALUE ary)
rb_ary_modify_check(ary); rb_ary_modify_check(ary);
for (i = 0; i < RARRAY_LEN(ary); ) { for (i = 0; i < RARRAY_LEN(ary); ) {
VALUE v = RARRAY_PTR(ary)[i]; VALUE v = RARRAY_AREF(ary, i);
if (RTEST(rb_yield(v))) { if (RTEST(rb_yield(v))) {
rb_ary_delete_at(ary, i); rb_ary_delete_at(ary, i);
result = ary; result = ary;
@ -3323,7 +3323,7 @@ rb_ary_fill(int argc, VALUE *argv, VALUE ary)
for (i=beg; i<end; i++) { for (i=beg; i<end; i++) {
v = rb_yield(LONG2NUM(i)); v = rb_yield(LONG2NUM(i));
if (i>=RARRAY_LEN(ary)) break; if (i>=RARRAY_LEN(ary)) break;
RARRAY_PTR(ary)[i] = v; RARRAY_ASET(ary, i, v);
} }
} }
else { else {
@ -3482,9 +3482,9 @@ rb_ary_assoc(VALUE ary, VALUE key)
VALUE v; VALUE v;
for (i = 0; i < RARRAY_LEN(ary); ++i) { for (i = 0; i < RARRAY_LEN(ary); ++i) {
v = rb_check_array_type(RARRAY_PTR(ary)[i]); v = rb_check_array_type(RARRAY_AREF(ary, i));
if (!NIL_P(v) && RARRAY_LEN(v) > 0 && if (!NIL_P(v) && RARRAY_LEN(v) > 0 &&
rb_equal(RARRAY_PTR(v)[0], key)) rb_equal(RARRAY_AREF(v, 0), key))
return v; return v;
} }
return Qnil; return Qnil;
@ -3515,10 +3515,10 @@ rb_ary_rassoc(VALUE ary, VALUE value)
VALUE v; VALUE v;
for (i = 0; i < RARRAY_LEN(ary); ++i) { for (i = 0; i < RARRAY_LEN(ary); ++i) {
v = RARRAY_PTR(ary)[i]; v = RARRAY_AREF(ary, i);
if (RB_TYPE_P(v, T_ARRAY) && if (RB_TYPE_P(v, T_ARRAY) &&
RARRAY_LEN(v) > 1 && RARRAY_LEN(v) > 1 &&
rb_equal(RARRAY_PTR(v)[1], value)) rb_equal(RARRAY_AREF(v, 1), value))
return v; return v;
} }
return Qnil; return Qnil;
@ -3628,7 +3628,7 @@ recursive_hash(VALUE ary, VALUE dummy, int recur)
} }
else { else {
for (i=0; i<RARRAY_LEN(ary); i++) { for (i=0; i<RARRAY_LEN(ary); i++) {
n = rb_hash(RARRAY_PTR(ary)[i]); n = rb_hash(RARRAY_AREF(ary, i));
h = rb_hash_uint(h, NUM2LONG(n)); h = rb_hash_uint(h, NUM2LONG(n));
} }
} }
@ -3670,7 +3670,7 @@ rb_ary_includes(VALUE ary, VALUE item)
long i; long i;
for (i=0; i<RARRAY_LEN(ary); i++) { for (i=0; i<RARRAY_LEN(ary); i++) {
if (rb_equal(RARRAY_PTR(ary)[i], item)) { if (rb_equal(RARRAY_AREF(ary, i), item)) {
return Qtrue; return Qtrue;
} }
} }
@ -3745,7 +3745,7 @@ ary_add_hash(VALUE hash, VALUE ary)
long i; long i;
for (i=0; i<RARRAY_LEN(ary); i++) { for (i=0; i<RARRAY_LEN(ary); i++) {
rb_hash_aset(hash, RARRAY_PTR(ary)[i], Qtrue); rb_hash_aset(hash, RARRAY_AREF(ary, i), Qtrue);
} }
return hash; return hash;
} }
@ -3825,7 +3825,7 @@ rb_ary_diff(VALUE ary1, VALUE ary2)
ary3 = rb_ary_new(); ary3 = rb_ary_new();
for (i=0; i<RARRAY_LEN(ary1); i++) { for (i=0; i<RARRAY_LEN(ary1); i++) {
if (st_lookup(RHASH_TBL(hash), RARRAY_PTR(ary1)[i], 0)) continue; if (st_lookup(RHASH_TBL(hash), RARRAY_AREF(ary1, i), 0)) continue;
rb_ary_push(ary3, rb_ary_elt(ary1, i)); rb_ary_push(ary3, rb_ary_elt(ary1, i));
} }
ary_recycle_hash(hash); ary_recycle_hash(hash);
@ -4158,7 +4158,7 @@ flatten(VALUE ary, int level, int *modified)
while (1) { while (1) {
while (i < RARRAY_LEN(ary)) { while (i < RARRAY_LEN(ary)) {
elt = RARRAY_PTR(ary)[i++]; elt = RARRAY_AREF(ary, i++);
tmp = rb_check_array_type(elt); tmp = rb_check_array_type(elt);
if (RBASIC(result)->klass) { if (RBASIC(result)->klass) {
rb_raise(rb_eRuntimeError, "flatten reentered"); rb_raise(rb_eRuntimeError, "flatten reentered");
@ -4483,7 +4483,7 @@ rb_ary_cycle_size(VALUE self, VALUE args)
long mul; long mul;
VALUE n = Qnil; VALUE n = Qnil;
if (args && (RARRAY_LEN(args) > 0)) { if (args && (RARRAY_LEN(args) > 0)) {
n = RARRAY_PTR(args)[0]; n = RARRAY_AREF(args, 0);
} }
if (RARRAY_LEN(self) == 0) return INT2FIX(0); if (RARRAY_LEN(self) == 0) return INT2FIX(0);
if (n == Qnil) return DBL2NUM(INFINITY); if (n == Qnil) return DBL2NUM(INFINITY);
@ -4531,7 +4531,7 @@ rb_ary_cycle(int argc, VALUE *argv, VALUE ary)
while (RARRAY_LEN(ary) > 0 && (n < 0 || 0 < n--)) { while (RARRAY_LEN(ary) > 0 && (n < 0 || 0 < n--)) {
for (i=0; i<RARRAY_LEN(ary); i++) { for (i=0; i<RARRAY_LEN(ary); i++) {
rb_yield(RARRAY_PTR(ary)[i]); rb_yield(RARRAY_AREF(ary, i));
} }
} }
return Qnil; return Qnil;
@ -4618,7 +4618,7 @@ static VALUE
rb_ary_permutation_size(VALUE ary, VALUE args) rb_ary_permutation_size(VALUE ary, VALUE args)
{ {
long n = RARRAY_LEN(ary); long n = RARRAY_LEN(ary);
long k = (args && (RARRAY_LEN(args) > 0)) ? NUM2LONG(RARRAY_PTR(args)[0]) : n; long k = (args && (RARRAY_LEN(args) > 0)) ? NUM2LONG(RARRAY_AREF(args, 0)) : n;
return descending_factorial(n, k); return descending_factorial(n, k);
} }
@ -4670,7 +4670,7 @@ rb_ary_permutation(int argc, VALUE *argv, VALUE ary)
} }
else if (r == 1) { /* this is a special, easy case */ else if (r == 1) { /* this is a special, easy case */
for (i = 0; i < RARRAY_LEN(ary); i++) { for (i = 0; i < RARRAY_LEN(ary); i++) {
rb_yield(rb_ary_new3(1, RARRAY_PTR(ary)[i])); rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));
} }
} }
else { /* this is the general case */ else { /* this is the general case */
@ -4695,7 +4695,7 @@ static VALUE
rb_ary_combination_size(VALUE ary, VALUE args) rb_ary_combination_size(VALUE ary, VALUE args)
{ {
long n = RARRAY_LEN(ary); long n = RARRAY_LEN(ary);
long k = NUM2LONG(RARRAY_PTR(args)[0]); long k = NUM2LONG(RARRAY_AREF(args, 0));
return binomial_coefficient(k, n); return binomial_coefficient(k, n);
} }
@ -4741,7 +4741,7 @@ rb_ary_combination(VALUE ary, VALUE num)
} }
else if (n == 1) { else if (n == 1) {
for (i = 0; i < len; i++) { for (i = 0; i < len; i++) {
rb_yield(rb_ary_new3(1, RARRAY_PTR(ary)[i])); rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));
} }
} }
else { else {
@ -4754,9 +4754,9 @@ rb_ary_combination(VALUE ary, VALUE num)
MEMZERO(stack, long, n); MEMZERO(stack, long, n);
stack[0] = -1; stack[0] = -1;
for (;;) { for (;;) {
chosen[lev] = RARRAY_PTR(ary)[stack[lev+1]]; chosen[lev] = RARRAY_AREF(ary, stack[lev+1]);
for (lev++; lev < n; lev++) { for (lev++; lev < n; lev++) {
chosen[lev] = RARRAY_PTR(ary)[stack[lev+1] = stack[lev]+1]; chosen[lev] = RARRAY_AREF(ary, stack[lev+1] = stack[lev]+1);
} }
rb_yield(rb_ary_new4(n, chosen)); rb_yield(rb_ary_new4(n, chosen));
if (RBASIC(t0)->klass) { if (RBASIC(t0)->klass) {
@ -4818,7 +4818,7 @@ static VALUE
rb_ary_repeated_permutation_size(VALUE ary, VALUE args) rb_ary_repeated_permutation_size(VALUE ary, VALUE args)
{ {
long n = RARRAY_LEN(ary); long n = RARRAY_LEN(ary);
long k = NUM2LONG(RARRAY_PTR(args)[0]); long k = NUM2LONG(RARRAY_AREF(args, 0));
if (k < 0) { if (k < 0) {
return LONG2FIX(0); return LONG2FIX(0);
@ -4867,7 +4867,7 @@ rb_ary_repeated_permutation(VALUE ary, VALUE num)
} }
else if (r == 1) { /* this is a special, easy case */ else if (r == 1) { /* this is a special, easy case */
for (i = 0; i < RARRAY_LEN(ary); i++) { for (i = 0; i < RARRAY_LEN(ary); i++) {
rb_yield(rb_ary_new3(1, RARRAY_PTR(ary)[i])); rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));
} }
} }
else { /* this is the general case */ else { /* this is the general case */
@ -4911,7 +4911,7 @@ static VALUE
rb_ary_repeated_combination_size(VALUE ary, VALUE args) rb_ary_repeated_combination_size(VALUE ary, VALUE args)
{ {
long n = RARRAY_LEN(ary); long n = RARRAY_LEN(ary);
long k = NUM2LONG(RARRAY_PTR(args)[0]); long k = NUM2LONG(RARRAY_AREF(args, 0));
if (k == 0) { if (k == 0) {
return LONG2FIX(1); return LONG2FIX(1);
} }
@ -4961,7 +4961,7 @@ rb_ary_repeated_combination(VALUE ary, VALUE num)
} }
else if (n == 1) { else if (n == 1) {
for (i = 0; i < len; i++) { for (i = 0; i < len; i++) {
rb_yield(rb_ary_new3(1, RARRAY_PTR(ary)[i])); rb_yield(rb_ary_new3(1, RARRAY_AREF(ary, i)));
} }
} }
else if (len == 0) { else if (len == 0) {
@ -5139,7 +5139,7 @@ rb_ary_take_while(VALUE ary)
RETURN_ENUMERATOR(ary, 0, 0); RETURN_ENUMERATOR(ary, 0, 0);
for (i = 0; i < RARRAY_LEN(ary); i++) { for (i = 0; i < RARRAY_LEN(ary); i++) {
if (!RTEST(rb_yield(RARRAY_PTR(ary)[i]))) break; if (!RTEST(rb_yield(RARRAY_AREF(ary, i)))) break;
} }
return rb_ary_take(ary, LONG2FIX(i)); return rb_ary_take(ary, LONG2FIX(i));
} }
@ -5199,7 +5199,7 @@ rb_ary_drop_while(VALUE ary)
RETURN_ENUMERATOR(ary, 0, 0); RETURN_ENUMERATOR(ary, 0, 0);
for (i = 0; i < RARRAY_LEN(ary); i++) { for (i = 0; i < RARRAY_LEN(ary); i++) {
if (!RTEST(rb_yield(RARRAY_PTR(ary)[i]))) break; if (!RTEST(rb_yield(RARRAY_AREF(ary, i)))) break;
} }
return rb_ary_drop(ary, LONG2FIX(i)); return rb_ary_drop(ary, LONG2FIX(i));
} }

View File

@ -223,7 +223,7 @@ r_value(VALUE value)
do { \ do { \
if ((event) == RUBY_EVENT_LINE && iseq->coverage && \ if ((event) == RUBY_EVENT_LINE && iseq->coverage && \
(line) != iseq->compile_data->last_coverable_line) { \ (line) != iseq->compile_data->last_coverable_line) { \
RARRAY_PTR(iseq->coverage)[(line) - 1] = INT2FIX(0); \ RARRAY_ASET(iseq->coverage, (line) - 1, INT2FIX(0)); \
iseq->compile_data->last_coverable_line = (line); \ iseq->compile_data->last_coverable_line = (line); \
ADD_INSN1((seq), (line), trace, INT2FIX(RUBY_EVENT_COVERAGE)); \ ADD_INSN1((seq), (line), trace, INT2FIX(RUBY_EVENT_COVERAGE)); \
} \ } \
@ -1209,7 +1209,7 @@ iseq_set_arguments(rb_iseq_t *iseq, LINK_ANCHOR *optargs, NODE *node_args)
keywords = required; keywords = required;
} }
for (j = 0; j < i; j++) { for (j = 0; j < i; j++) {
iseq->arg_keyword_table[j] = FIX2INT(RARRAY_PTR(keywords)[j]); iseq->arg_keyword_table[j] = FIX2INT(RARRAY_AREF(keywords, j));
} }
ADD_INSN(optargs, nd_line(args->kw_args), pop); ADD_INSN(optargs, nd_line(args->kw_args), pop);
} }
@ -5571,7 +5571,7 @@ iseq_build_from_ary_exception(rb_iseq_t *iseq, struct st_table *labels_table,
LABEL *lstart, *lend, *lcont; LABEL *lstart, *lend, *lcont;
int sp; int sp;
RB_GC_GUARD(v) = rb_convert_type(RARRAY_PTR(exception)[i], T_ARRAY, RB_GC_GUARD(v) = rb_convert_type(RARRAY_AREF(exception, i), T_ARRAY,
"Array", "to_ary"); "Array", "to_ary");
if (RARRAY_LEN(v) != 6) { if (RARRAY_LEN(v) != 6) {
rb_raise(rb_eSyntaxError, "wrong exception entry"); rb_raise(rb_eSyntaxError, "wrong exception entry");
@ -5663,7 +5663,7 @@ iseq_build_from_ary_body(rb_iseq_t *iseq, LINK_ANCHOR *anchor,
st_data_t insn_id; st_data_t insn_id;
VALUE insn; VALUE insn;
insn = (argc < 0) ? Qnil : RARRAY_PTR(obj)[0]; insn = (argc < 0) ? Qnil : RARRAY_AREF(obj, 0);
if (st_lookup(insn_table, (st_data_t)insn, &insn_id) == 0) { if (st_lookup(insn_table, (st_data_t)insn, &insn_id) == 0) {
/* TODO: exception */ /* TODO: exception */
RB_GC_GUARD(insn) = rb_inspect(insn); RB_GC_GUARD(insn) = rb_inspect(insn);
@ -5794,7 +5794,7 @@ rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE locals, VALUE args,
iseq->local_size = iseq->local_table_size + 1; iseq->local_size = iseq->local_table_size + 1;
for (i=0; i<RARRAY_LEN(locals); i++) { for (i=0; i<RARRAY_LEN(locals); i++) {
VALUE lv = RARRAY_PTR(locals)[i]; VALUE lv = RARRAY_AREF(locals, i);
tbl[i] = FIXNUM_P(lv) ? (ID)FIX2LONG(lv) : SYM2ID(CHECK_SYMBOL(lv)); tbl[i] = FIXNUM_P(lv) ? (ID)FIX2LONG(lv) : SYM2ID(CHECK_SYMBOL(lv));
} }

View File

@ -1357,8 +1357,8 @@ nucomp_marshal_load(VALUE self, VALUE a)
Check_Type(a, T_ARRAY); Check_Type(a, T_ARRAY);
if (RARRAY_LEN(a) != 2) if (RARRAY_LEN(a) != 2)
rb_raise(rb_eArgError, "marshaled complex must have an array whose length is 2 but %ld", RARRAY_LEN(a)); rb_raise(rb_eArgError, "marshaled complex must have an array whose length is 2 but %ld", RARRAY_LEN(a));
rb_ivar_set(self, id_i_real, RARRAY_PTR(a)[0]); rb_ivar_set(self, id_i_real, RARRAY_AREF(a, 0));
rb_ivar_set(self, id_i_imag, RARRAY_PTR(a)[1]); rb_ivar_set(self, id_i_imag, RARRAY_AREF(a, 1));
return self; return self;
} }

26
enum.c
View File

@ -817,8 +817,8 @@ sort_by_i(VALUE i, VALUE _data, int argc, VALUE *argv)
rb_raise(rb_eRuntimeError, "sort_by reentered"); rb_raise(rb_eRuntimeError, "sort_by reentered");
} }
RARRAY_PTR(data->buf)[data->n*2] = v; RARRAY_ASET(data->buf, data->n*2, v);
RARRAY_PTR(data->buf)[data->n*2+1] = i; RARRAY_ASET(data->buf, data->n*2+1, i);
data->n++; data->n++;
if (data->n == SORT_BY_BUFSIZE) { if (data->n == SORT_BY_BUFSIZE) {
rb_ary_concat(ary, data->buf); rb_ary_concat(ary, data->buf);
@ -955,7 +955,7 @@ enum_sort_by(VALUE obj)
rb_raise(rb_eRuntimeError, "sort_by reentered"); rb_raise(rb_eRuntimeError, "sort_by reentered");
} }
for (i=1; i<RARRAY_LEN(ary); i+=2) { for (i=1; i<RARRAY_LEN(ary); i+=2) {
RARRAY_PTR(ary)[i/2] = RARRAY_PTR(ary)[i]; RARRAY_ASET(ary, i/2, RARRAY_AREF(ary, i));
} }
rb_ary_resize(ary, RARRAY_LEN(ary)/2); rb_ary_resize(ary, RARRAY_LEN(ary)/2);
RBASIC(ary)->klass = rb_cArray; RBASIC(ary)->klass = rb_cArray;
@ -1725,7 +1725,7 @@ enum_reverse_each(int argc, VALUE *argv, VALUE obj)
ary = enum_to_a(argc, argv, obj); ary = enum_to_a(argc, argv, obj);
for (i = RARRAY_LEN(ary); --i >= 0; ) { for (i = RARRAY_LEN(ary); --i >= 0; ) {
rb_yield(RARRAY_PTR(ary)[i]); rb_yield(RARRAY_AREF(ary, i));
} }
return obj; return obj;
@ -1800,7 +1800,7 @@ static VALUE
enum_each_slice_size(VALUE obj, VALUE args) enum_each_slice_size(VALUE obj, VALUE args)
{ {
VALUE n, size; VALUE n, size;
long slice_size = NUM2LONG(RARRAY_PTR(args)[0]); long slice_size = NUM2LONG(RARRAY_AREF(args, 0));
if (slice_size <= 0) rb_raise(rb_eArgError, "invalid slice size"); if (slice_size <= 0) rb_raise(rb_eArgError, "invalid slice size");
size = enum_size(obj, 0); size = enum_size(obj, 0);
@ -1867,7 +1867,7 @@ static VALUE
enum_each_cons_size(VALUE obj, VALUE args) enum_each_cons_size(VALUE obj, VALUE args)
{ {
VALUE n, size; VALUE n, size;
long cons_size = NUM2LONG(RARRAY_PTR(args)[0]); long cons_size = NUM2LONG(RARRAY_AREF(args, 0));
if (cons_size <= 0) rb_raise(rb_eArgError, "invalid size"); if (cons_size <= 0) rb_raise(rb_eArgError, "invalid size");
size = enum_size(obj, 0); size = enum_size(obj, 0);
@ -1955,13 +1955,13 @@ zip_ary(VALUE val, NODE *memo, int argc, VALUE *argv)
tmp = rb_ary_new2(RARRAY_LEN(args) + 1); tmp = rb_ary_new2(RARRAY_LEN(args) + 1);
rb_ary_store(tmp, 0, rb_enum_values_pack(argc, argv)); rb_ary_store(tmp, 0, rb_enum_values_pack(argc, argv));
for (i=0; i<RARRAY_LEN(args); i++) { for (i=0; i<RARRAY_LEN(args); i++) {
VALUE e = RARRAY_PTR(args)[i]; VALUE e = RARRAY_AREF(args, i);
if (RARRAY_LEN(e) <= n) { if (RARRAY_LEN(e) <= n) {
rb_ary_push(tmp, Qnil); rb_ary_push(tmp, Qnil);
} }
else { else {
rb_ary_push(tmp, RARRAY_PTR(e)[n]); rb_ary_push(tmp, RARRAY_AREF(e, n));
} }
} }
if (NIL_P(result)) { if (NIL_P(result)) {
@ -1996,16 +1996,16 @@ zip_i(VALUE val, NODE *memo, int argc, VALUE *argv)
tmp = rb_ary_new2(RARRAY_LEN(args) + 1); tmp = rb_ary_new2(RARRAY_LEN(args) + 1);
rb_ary_store(tmp, 0, rb_enum_values_pack(argc, argv)); rb_ary_store(tmp, 0, rb_enum_values_pack(argc, argv));
for (i=0; i<RARRAY_LEN(args); i++) { for (i=0; i<RARRAY_LEN(args); i++) {
if (NIL_P(RARRAY_PTR(args)[i])) { if (NIL_P(RARRAY_AREF(args, i))) {
rb_ary_push(tmp, Qnil); rb_ary_push(tmp, Qnil);
} }
else { else {
VALUE v[2]; VALUE v[2];
v[1] = RARRAY_PTR(args)[i]; v[1] = RARRAY_AREF(args, i);
rb_rescue2(call_next, (VALUE)v, call_stop, (VALUE)v, rb_eStopIteration, (VALUE)0); rb_rescue2(call_next, (VALUE)v, call_stop, (VALUE)v, rb_eStopIteration, (VALUE)0);
if (v[0] == Qundef) { if (v[0] == Qundef) {
RARRAY_PTR(args)[i] = Qnil; RARRAY_ASET(args, i, Qnil);
v[0] = Qnil; v[0] = Qnil;
} }
rb_ary_push(tmp, v[0]); rb_ary_push(tmp, v[0]);
@ -2262,7 +2262,7 @@ enum_cycle_size(VALUE self, VALUE args)
if (size == Qnil) return Qnil; if (size == Qnil) return Qnil;
if (args && (RARRAY_LEN(args) > 0)) { if (args && (RARRAY_LEN(args) > 0)) {
n = RARRAY_PTR(args)[0]; n = RARRAY_AREF(args, 0);
} }
if (n == Qnil) return DBL2NUM(INFINITY); if (n == Qnil) return DBL2NUM(INFINITY);
mul = NUM2LONG(n); mul = NUM2LONG(n);
@ -2315,7 +2315,7 @@ enum_cycle(int argc, VALUE *argv, VALUE obj)
if (len == 0) return Qnil; if (len == 0) return Qnil;
while (n < 0 || 0 < --n) { while (n < 0 || 0 < --n) {
for (i=0; i<len; i++) { for (i=0; i<len; i++) {
rb_yield(RARRAY_PTR(ary)[i]); rb_yield(RARRAY_AREF(ary, i));
} }
} }
return Qnil; return Qnil;

View File

@ -696,7 +696,7 @@ ary2sv(VALUE args, int dup)
return Qnil; return Qnil;
case 1: case 1:
return RARRAY_PTR(args)[0]; return RARRAY_AREF(args, 0);
default: default:
if (dup) if (dup)
@ -1474,7 +1474,7 @@ lazy_flat_map_to_ary(VALUE obj, VALUE yielder)
else { else {
long i; long i;
for (i = 0; i < RARRAY_LEN(ary); i++) { for (i = 0; i < RARRAY_LEN(ary); i++) {
rb_funcall(yielder, id_yield, 1, RARRAY_PTR(ary)[i]); rb_funcall(yielder, id_yield, 1, RARRAY_AREF(ary, i));
} }
} }
return Qnil; return Qnil;
@ -1487,7 +1487,7 @@ lazy_flat_map_func(VALUE val, VALUE m, int argc, VALUE *argv)
if (RB_TYPE_P(result, T_ARRAY)) { if (RB_TYPE_P(result, T_ARRAY)) {
long i; long i;
for (i = 0; i < RARRAY_LEN(result); i++) { for (i = 0; i < RARRAY_LEN(result); i++) {
rb_funcall(argv[0], id_yield, 1, RARRAY_PTR(result)[i]); rb_funcall(argv[0], id_yield, 1, RARRAY_AREF(result, i));
} }
} }
else { else {
@ -1641,7 +1641,7 @@ lazy_zip_arrays_func(VALUE val, VALUE arrays, int argc, VALUE *argv)
ary = rb_ary_new2(RARRAY_LEN(arrays) + 1); ary = rb_ary_new2(RARRAY_LEN(arrays) + 1);
rb_ary_push(ary, argv[1]); rb_ary_push(ary, argv[1]);
for (i = 0; i < RARRAY_LEN(arrays); i++) { for (i = 0; i < RARRAY_LEN(arrays); i++) {
rb_ary_push(ary, rb_ary_entry(RARRAY_PTR(arrays)[i], count)); rb_ary_push(ary, rb_ary_entry(RARRAY_AREF(arrays, i), count));
} }
rb_funcall(yielder, id_yield, 1, ary); rb_funcall(yielder, id_yield, 1, ary);
rb_ivar_set(yielder, id_memo, LONG2NUM(++count)); rb_ivar_set(yielder, id_memo, LONG2NUM(++count));
@ -1659,7 +1659,7 @@ lazy_zip_func(VALUE val, VALUE zip_args, int argc, VALUE *argv)
if (NIL_P(arg)) { if (NIL_P(arg)) {
arg = rb_ary_new2(RARRAY_LEN(zip_args)); arg = rb_ary_new2(RARRAY_LEN(zip_args));
for (i = 0; i < RARRAY_LEN(zip_args); i++) { for (i = 0; i < RARRAY_LEN(zip_args); i++) {
rb_ary_push(arg, rb_funcall(RARRAY_PTR(zip_args)[i], id_to_enum, 0)); rb_ary_push(arg, rb_funcall(RARRAY_AREF(zip_args, i), id_to_enum, 0));
} }
rb_ivar_set(yielder, id_memo, arg); rb_ivar_set(yielder, id_memo, arg);
} }
@ -1667,7 +1667,7 @@ lazy_zip_func(VALUE val, VALUE zip_args, int argc, VALUE *argv)
ary = rb_ary_new2(RARRAY_LEN(arg) + 1); ary = rb_ary_new2(RARRAY_LEN(arg) + 1);
rb_ary_push(ary, argv[1]); rb_ary_push(ary, argv[1]);
for (i = 0; i < RARRAY_LEN(arg); i++) { for (i = 0; i < RARRAY_LEN(arg); i++) {
v = rb_rescue2(call_next, RARRAY_PTR(arg)[i], next_stopped, 0, v = rb_rescue2(call_next, RARRAY_AREF(arg, i), next_stopped, 0,
rb_eStopIteration, (VALUE)0); rb_eStopIteration, (VALUE)0);
rb_ary_push(ary, v); rb_ary_push(ary, v);
} }
@ -1731,7 +1731,7 @@ static VALUE
lazy_take_size(VALUE generator, VALUE args, VALUE lazy) lazy_take_size(VALUE generator, VALUE args, VALUE lazy)
{ {
VALUE receiver = lazy_size(lazy); VALUE receiver = lazy_size(lazy);
long len = NUM2LONG(RARRAY_PTR(rb_ivar_get(lazy, id_arguments))[0]); long len = NUM2LONG(RARRAY_AREF(rb_ivar_get(lazy, id_arguments), 0));
if (NIL_P(receiver) || (FIXNUM_P(receiver) && FIX2LONG(receiver) < len)) if (NIL_P(receiver) || (FIXNUM_P(receiver) && FIX2LONG(receiver) < len))
return receiver; return receiver;
return LONG2NUM(len); return LONG2NUM(len);
@ -1780,7 +1780,7 @@ lazy_take_while(VALUE obj)
static VALUE static VALUE
lazy_drop_size(VALUE generator, VALUE args, VALUE lazy) lazy_drop_size(VALUE generator, VALUE args, VALUE lazy)
{ {
long len = NUM2LONG(RARRAY_PTR(rb_ivar_get(lazy, id_arguments))[0]); long len = NUM2LONG(RARRAY_AREF(rb_ivar_get(lazy, id_arguments), 0));
VALUE receiver = lazy_size(lazy); VALUE receiver = lazy_size(lazy);
if (NIL_P(receiver)) if (NIL_P(receiver))
return receiver; return receiver;

View File

@ -723,7 +723,7 @@ rb_check_backtrace(VALUE bt)
rb_raise(rb_eTypeError, err); rb_raise(rb_eTypeError, err);
} }
for (i=0;i<RARRAY_LEN(bt);i++) { for (i=0;i<RARRAY_LEN(bt);i++) {
if (!RB_TYPE_P(RARRAY_PTR(bt)[i], T_STRING)) { if (!RB_TYPE_P(RARRAY_AREF(bt, i), T_STRING)) {
rb_raise(rb_eTypeError, err); rb_raise(rb_eTypeError, err);
} }
} }

View File

@ -112,7 +112,7 @@ error_print(void)
error_pos(); error_pos();
} }
else { else {
VALUE mesg = RARRAY_PTR(errat)[0]; VALUE mesg = RARRAY_AREF(errat, 0);
if (NIL_P(mesg)) if (NIL_P(mesg))
error_pos(); error_pos();

10
file.c
View File

@ -252,7 +252,7 @@ apply2files(void (*func)(const char *, VALUE, void *), VALUE vargs, void *arg)
rb_secure(4); rb_secure(4);
for (i=0; i<RARRAY_LEN(vargs); i++) { for (i=0; i<RARRAY_LEN(vargs); i++) {
const char *s; const char *s;
path = rb_get_path(RARRAY_PTR(vargs)[i]); path = rb_get_path(RARRAY_AREF(vargs, i));
path = rb_str_encode_ospath(path); path = rb_str_encode_ospath(path);
s = RSTRING_PTR(path); s = RSTRING_PTR(path);
(*func)(s, path, arg); (*func)(s, path, arg);
@ -3999,7 +3999,7 @@ rb_file_join(VALUE ary, VALUE sep)
len = 1; len = 1;
for (i=0; i<RARRAY_LEN(ary); i++) { for (i=0; i<RARRAY_LEN(ary); i++) {
tmp = RARRAY_PTR(ary)[i]; tmp = RARRAY_AREF(ary, i);
if (RB_TYPE_P(tmp, T_STRING)) { if (RB_TYPE_P(tmp, T_STRING)) {
check_path_encoding(tmp); check_path_encoding(tmp);
len += RSTRING_LEN(tmp); len += RSTRING_LEN(tmp);
@ -4016,7 +4016,7 @@ rb_file_join(VALUE ary, VALUE sep)
RBASIC(result)->klass = 0; RBASIC(result)->klass = 0;
OBJ_INFECT(result, ary); OBJ_INFECT(result, ary);
for (i=0; i<RARRAY_LEN(ary); i++) { for (i=0; i<RARRAY_LEN(ary); i++) {
tmp = RARRAY_PTR(ary)[i]; tmp = RARRAY_AREF(ary, i);
switch (TYPE(tmp)) { switch (TYPE(tmp)) {
case T_STRING: case T_STRING:
if (!checked) check_path_encoding(tmp); if (!checked) check_path_encoding(tmp);
@ -5367,7 +5367,7 @@ rb_find_file_ext_safe(VALUE *filep, const char *const *ext, int safe_level)
for (j=0; ext[j]; j++) { for (j=0; ext[j]; j++) {
rb_str_cat2(fname, ext[j]); rb_str_cat2(fname, ext[j]);
for (i = 0; i < RARRAY_LEN(load_path); i++) { for (i = 0; i < RARRAY_LEN(load_path); i++) {
VALUE str = RARRAY_PTR(load_path)[i]; VALUE str = RARRAY_AREF(load_path, i);
RB_GC_GUARD(str) = rb_get_path_check(str, safe_level); RB_GC_GUARD(str) = rb_get_path_check(str, safe_level);
if (RSTRING_LEN(str) == 0) continue; if (RSTRING_LEN(str) == 0) continue;
@ -5428,7 +5428,7 @@ rb_find_file_safe(VALUE path, int safe_level)
tmp = rb_str_tmp_new(MAXPATHLEN + 2); tmp = rb_str_tmp_new(MAXPATHLEN + 2);
rb_enc_associate_index(tmp, rb_usascii_encindex()); rb_enc_associate_index(tmp, rb_usascii_encindex());
for (i = 0; i < RARRAY_LEN(load_path); i++) { for (i = 0; i < RARRAY_LEN(load_path); i++) {
VALUE str = RARRAY_PTR(load_path)[i]; VALUE str = RARRAY_AREF(load_path, i);
RB_GC_GUARD(str) = rb_get_path_check(str, safe_level); RB_GC_GUARD(str) = rb_get_path_check(str, safe_level);
if (RSTRING_LEN(str) > 0) { if (RSTRING_LEN(str) > 0) {
rb_file_expand_path_internal(path, str, 0, 0, tmp); rb_file_expand_path_internal(path, str, 0, 0, tmp);

8
gc.c
View File

@ -1387,9 +1387,9 @@ run_finalizer(rb_objspace_t *objspace, VALUE obj, VALUE table)
args[2] = (VALUE)rb_safe_level(); args[2] = (VALUE)rb_safe_level();
for (i=0; i<RARRAY_LEN(table); i++) { for (i=0; i<RARRAY_LEN(table); i++) {
VALUE final = RARRAY_PTR(table)[i]; VALUE final = RARRAY_AREF(table, i);
args[0] = RARRAY_PTR(final)[1]; args[0] = RARRAY_AREF(final, 1);
args[2] = FIX2INT(RARRAY_PTR(final)[0]); args[2] = FIX2INT(RARRAY_AREF(final, 0));
status = 0; status = 0;
rb_protect(run_single_final, (VALUE)args, &status); rb_protect(run_single_final, (VALUE)args, &status);
if (status) if (status)
@ -3834,7 +3834,7 @@ wmap_finalize(VALUE self, VALUE objid)
if (st_delete(w->obj2wmap, &orig, &data)) { if (st_delete(w->obj2wmap, &orig, &data)) {
rids = (VALUE)data; rids = (VALUE)data;
for (i = 0; i < RARRAY_LEN(rids); ++i) { for (i = 0; i < RARRAY_LEN(rids); ++i) {
wmap = (st_data_t)RARRAY_PTR(rids)[i]; wmap = (st_data_t)RARRAY_AREF(rids, i);
st_delete(w->wmap2obj, &wmap, NULL); st_delete(w->wmap2obj, &wmap, NULL);
} }
} }

34
hash.c
View File

@ -411,7 +411,7 @@ rb_hash_s_create(int argc, VALUE *argv, VALUE klass)
hash = hash_alloc(klass); hash = hash_alloc(klass);
for (i = 0; i < RARRAY_LEN(tmp); ++i) { for (i = 0; i < RARRAY_LEN(tmp); ++i) {
VALUE e = RARRAY_PTR(tmp)[i]; VALUE e = RARRAY_AREF(tmp, i);
VALUE v = rb_check_array_type(e); VALUE v = rb_check_array_type(e);
VALUE key, val = Qnil; VALUE key, val = Qnil;
@ -433,9 +433,9 @@ rb_hash_s_create(int argc, VALUE *argv, VALUE klass)
rb_raise(rb_eArgError, "invalid number of elements (%ld for 1..2)", rb_raise(rb_eArgError, "invalid number of elements (%ld for 1..2)",
RARRAY_LEN(v)); RARRAY_LEN(v));
case 2: case 2:
val = RARRAY_PTR(v)[1]; val = RARRAY_AREF(v, 1);
case 1: case 1:
key = RARRAY_PTR(v)[0]; key = RARRAY_AREF(v, 0);
rb_hash_aset(hash, key, val); rb_hash_aset(hash, key, val);
} }
} }
@ -2597,7 +2597,7 @@ env_each_key(VALUE ehash)
RETURN_SIZED_ENUMERATOR(ehash, 0, 0, rb_env_size); RETURN_SIZED_ENUMERATOR(ehash, 0, 0, rb_env_size);
keys = env_keys(); /* rb_secure(4); */ keys = env_keys(); /* rb_secure(4); */
for (i=0; i<RARRAY_LEN(keys); i++) { for (i=0; i<RARRAY_LEN(keys); i++) {
rb_yield(RARRAY_PTR(keys)[i]); rb_yield(RARRAY_AREF(keys, i));
} }
return ehash; return ehash;
} }
@ -2646,7 +2646,7 @@ env_each_value(VALUE ehash)
RETURN_SIZED_ENUMERATOR(ehash, 0, 0, rb_env_size); RETURN_SIZED_ENUMERATOR(ehash, 0, 0, rb_env_size);
values = env_values(); /* rb_secure(4); */ values = env_values(); /* rb_secure(4); */
for (i=0; i<RARRAY_LEN(values); i++) { for (i=0; i<RARRAY_LEN(values); i++) {
rb_yield(RARRAY_PTR(values)[i]); rb_yield(RARRAY_AREF(values, i));
} }
return ehash; return ehash;
} }
@ -2685,7 +2685,7 @@ env_each_pair(VALUE ehash)
FREE_ENVIRON(environ); FREE_ENVIRON(environ);
for (i=0; i<RARRAY_LEN(ary); i+=2) { for (i=0; i<RARRAY_LEN(ary); i+=2) {
rb_yield(rb_assoc_new(RARRAY_PTR(ary)[i], RARRAY_PTR(ary)[i+1])); rb_yield(rb_assoc_new(RARRAY_AREF(ary, i), RARRAY_AREF(ary, i+1)));
} }
return ehash; return ehash;
} }
@ -2710,11 +2710,11 @@ env_reject_bang(VALUE ehash)
keys = env_keys(); /* rb_secure(4); */ keys = env_keys(); /* rb_secure(4); */
RBASIC(keys)->klass = 0; RBASIC(keys)->klass = 0;
for (i=0; i<RARRAY_LEN(keys); i++) { for (i=0; i<RARRAY_LEN(keys); i++) {
VALUE val = rb_f_getenv(Qnil, RARRAY_PTR(keys)[i]); VALUE val = rb_f_getenv(Qnil, RARRAY_AREF(keys, i));
if (!NIL_P(val)) { if (!NIL_P(val)) {
if (RTEST(rb_yield_values(2, RARRAY_PTR(keys)[i], val))) { if (RTEST(rb_yield_values(2, RARRAY_AREF(keys, i), val))) {
FL_UNSET(RARRAY_PTR(keys)[i], FL_TAINT); FL_UNSET(RARRAY_AREF(keys, i), FL_TAINT);
env_delete(Qnil, RARRAY_PTR(keys)[i]); env_delete(Qnil, RARRAY_AREF(keys, i));
del++; del++;
} }
} }
@ -2814,11 +2814,11 @@ env_select_bang(VALUE ehash)
keys = env_keys(); /* rb_secure(4); */ keys = env_keys(); /* rb_secure(4); */
RBASIC(keys)->klass = 0; RBASIC(keys)->klass = 0;
for (i=0; i<RARRAY_LEN(keys); i++) { for (i=0; i<RARRAY_LEN(keys); i++) {
VALUE val = rb_f_getenv(Qnil, RARRAY_PTR(keys)[i]); VALUE val = rb_f_getenv(Qnil, RARRAY_AREF(keys, i));
if (!NIL_P(val)) { if (!NIL_P(val)) {
if (!RTEST(rb_yield_values(2, RARRAY_PTR(keys)[i], val))) { if (!RTEST(rb_yield_values(2, RARRAY_AREF(keys, i), val))) {
FL_UNSET(RARRAY_PTR(keys)[i], FL_TAINT); FL_UNSET(RARRAY_AREF(keys, i), FL_TAINT);
env_delete(Qnil, RARRAY_PTR(keys)[i]); env_delete(Qnil, RARRAY_AREF(keys, i));
del++; del++;
} }
} }
@ -2858,9 +2858,9 @@ rb_env_clear(void)
keys = env_keys(); /* rb_secure(4); */ keys = env_keys(); /* rb_secure(4); */
for (i=0; i<RARRAY_LEN(keys); i++) { for (i=0; i<RARRAY_LEN(keys); i++) {
VALUE val = rb_f_getenv(Qnil, RARRAY_PTR(keys)[i]); VALUE val = rb_f_getenv(Qnil, RARRAY_AREF(keys, i));
if (!NIL_P(val)) { if (!NIL_P(val)) {
env_delete(Qnil, RARRAY_PTR(keys)[i]); env_delete(Qnil, RARRAY_AREF(keys, i));
} }
} }
return envtbl; return envtbl;
@ -3263,7 +3263,7 @@ env_replace(VALUE env, VALUE hash)
rb_hash_foreach(hash, env_replace_i, keys); rb_hash_foreach(hash, env_replace_i, keys);
for (i=0; i<RARRAY_LEN(keys); i++) { for (i=0; i<RARRAY_LEN(keys); i++) {
env_delete(env, RARRAY_PTR(keys)[i]); env_delete(env, RARRAY_AREF(keys, i));
} }
return env; return env;
} }

View File

@ -818,7 +818,7 @@ checkmatch
if (flag & VM_CHECKMATCH_ARRAY) { if (flag & VM_CHECKMATCH_ARRAY) {
int i; int i;
for (i = 0; i < RARRAY_LEN(pattern); i++) { for (i = 0; i < RARRAY_LEN(pattern); i++) {
if (RTEST(check_match(RARRAY_PTR(pattern)[i], target, checkmatch_type))) { if (RTEST(check_match(RARRAY_AREF(pattern, i), target, checkmatch_type))) {
result = Qtrue; result = Qtrue;
break; break;
} }

14
io.c
View File

@ -6846,7 +6846,7 @@ io_puts_ary(VALUE ary, VALUE out, int recur)
ary = rb_check_array_type(ary); ary = rb_check_array_type(ary);
if (NIL_P(ary)) return Qfalse; if (NIL_P(ary)) return Qfalse;
for (i=0; i<RARRAY_LEN(ary); i++) { for (i=0; i<RARRAY_LEN(ary); i++) {
tmp = RARRAY_PTR(ary)[i]; tmp = RARRAY_AREF(ary, i);
rb_io_puts(1, &tmp, out); rb_io_puts(1, &tmp, out);
} }
return Qtrue; return Qtrue;
@ -8096,7 +8096,7 @@ select_internal(VALUE read, VALUE write, VALUE except, struct timeval *tp, rb_fd
if (!NIL_P(read)) { if (!NIL_P(read)) {
Check_Type(read, T_ARRAY); Check_Type(read, T_ARRAY);
for (i=0; i<RARRAY_LEN(read); i++) { for (i=0; i<RARRAY_LEN(read); i++) {
GetOpenFile(rb_io_get_io(RARRAY_PTR(read)[i]), fptr); GetOpenFile(rb_io_get_io(RARRAY_AREF(read, i)), fptr);
rb_fd_set(fptr->fd, &fds[0]); rb_fd_set(fptr->fd, &fds[0]);
if (READ_DATA_PENDING(fptr) || READ_CHAR_PENDING(fptr)) { /* check for buffered data */ if (READ_DATA_PENDING(fptr) || READ_CHAR_PENDING(fptr)) { /* check for buffered data */
pending++; pending++;
@ -8116,7 +8116,7 @@ select_internal(VALUE read, VALUE write, VALUE except, struct timeval *tp, rb_fd
if (!NIL_P(write)) { if (!NIL_P(write)) {
Check_Type(write, T_ARRAY); Check_Type(write, T_ARRAY);
for (i=0; i<RARRAY_LEN(write); i++) { for (i=0; i<RARRAY_LEN(write); i++) {
VALUE write_io = GetWriteIO(rb_io_get_io(RARRAY_PTR(write)[i])); VALUE write_io = GetWriteIO(rb_io_get_io(RARRAY_AREF(write, i)));
GetOpenFile(write_io, fptr); GetOpenFile(write_io, fptr);
rb_fd_set(fptr->fd, &fds[1]); rb_fd_set(fptr->fd, &fds[1]);
if (max < fptr->fd) max = fptr->fd; if (max < fptr->fd) max = fptr->fd;
@ -8129,7 +8129,7 @@ select_internal(VALUE read, VALUE write, VALUE except, struct timeval *tp, rb_fd
if (!NIL_P(except)) { if (!NIL_P(except)) {
Check_Type(except, T_ARRAY); Check_Type(except, T_ARRAY);
for (i=0; i<RARRAY_LEN(except); i++) { for (i=0; i<RARRAY_LEN(except); i++) {
VALUE io = rb_io_get_io(RARRAY_PTR(except)[i]); VALUE io = rb_io_get_io(RARRAY_AREF(except, i));
VALUE write_io = GetWriteIO(io); VALUE write_io = GetWriteIO(io);
GetOpenFile(io, fptr); GetOpenFile(io, fptr);
rb_fd_set(fptr->fd, &fds[2]); rb_fd_set(fptr->fd, &fds[2]);
@ -8160,7 +8160,7 @@ select_internal(VALUE read, VALUE write, VALUE except, struct timeval *tp, rb_fd
rb_ary_push(res, ep?rb_ary_new():rb_ary_new2(0)); rb_ary_push(res, ep?rb_ary_new():rb_ary_new2(0));
if (rp) { if (rp) {
list = RARRAY_PTR(res)[0]; list = RARRAY_AREF(res, 0);
for (i=0; i< RARRAY_LEN(read); i++) { for (i=0; i< RARRAY_LEN(read); i++) {
VALUE obj = rb_ary_entry(read, i); VALUE obj = rb_ary_entry(read, i);
VALUE io = rb_io_get_io(obj); VALUE io = rb_io_get_io(obj);
@ -8173,7 +8173,7 @@ select_internal(VALUE read, VALUE write, VALUE except, struct timeval *tp, rb_fd
} }
if (wp) { if (wp) {
list = RARRAY_PTR(res)[1]; list = RARRAY_AREF(res, 1);
for (i=0; i< RARRAY_LEN(write); i++) { for (i=0; i< RARRAY_LEN(write); i++) {
VALUE obj = rb_ary_entry(write, i); VALUE obj = rb_ary_entry(write, i);
VALUE io = rb_io_get_io(obj); VALUE io = rb_io_get_io(obj);
@ -8186,7 +8186,7 @@ select_internal(VALUE read, VALUE write, VALUE except, struct timeval *tp, rb_fd
} }
if (ep) { if (ep) {
list = RARRAY_PTR(res)[2]; list = RARRAY_AREF(res, 2);
for (i=0; i< RARRAY_LEN(except); i++) { for (i=0; i< RARRAY_LEN(except); i++) {
VALUE obj = rb_ary_entry(except, i); VALUE obj = rb_ary_entry(except, i);
VALUE io = rb_io_get_io(obj); VALUE io = rb_io_get_io(obj);

2
iseq.c
View File

@ -1848,7 +1848,7 @@ iseq_data_to_ary(rb_iseq_t *iseq)
ti = 0; ti = 0;
for (i=0, pos=0; i<RARRAY_LEN(nbody); i++) { for (i=0, pos=0; i<RARRAY_LEN(nbody); i++) {
VALUE ary = RARRAY_PTR(nbody)[i]; VALUE ary = RARRAY_AREF(nbody, i);
st_data_t label; st_data_t label;
if (st_lookup(labels_table, pos, &label)) { if (st_lookup(labels_table, pos, &label)) {

10
load.c
View File

@ -63,7 +63,7 @@ rb_construct_expanded_load_path(int type, int *has_relative, int *has_non_cache)
VALUE path, as_str, expanded_path; VALUE path, as_str, expanded_path;
int is_string, non_cache; int is_string, non_cache;
char *as_cstr; char *as_cstr;
as_str = path = RARRAY_PTR(load_path)[i]; as_str = path = RARRAY_AREF(load_path, i);
is_string = RB_TYPE_P(path, T_STRING) ? 1 : 0; is_string = RB_TYPE_P(path, T_STRING) ? 1 : 0;
non_cache = !is_string ? 1 : 0; non_cache = !is_string ? 1 : 0;
as_str = rb_get_path_check_to_string(path, level); as_str = rb_get_path_check_to_string(path, level);
@ -76,7 +76,7 @@ rb_construct_expanded_load_path(int type, int *has_relative, int *has_non_cache)
(!as_cstr[0] || as_cstr[0] != '~')) || (!as_cstr[0] || as_cstr[0] != '~')) ||
(type == EXPAND_NON_CACHE)) { (type == EXPAND_NON_CACHE)) {
/* Use cached expanded path. */ /* Use cached expanded path. */
rb_ary_push(ary, RARRAY_PTR(expanded_load_path)[i]); rb_ary_push(ary, RARRAY_AREF(expanded_load_path, i));
continue; continue;
} }
} }
@ -337,7 +337,7 @@ loaded_feature_path(const char *name, long vlen, const char *feature, long len,
(possibly empty) and prefix is some string of length plen. */ (possibly empty) and prefix is some string of length plen. */
for (i = 0; i < RARRAY_LEN(load_path); ++i) { for (i = 0; i < RARRAY_LEN(load_path); ++i) {
VALUE p = RARRAY_PTR(load_path)[i]; VALUE p = RARRAY_AREF(load_path, i);
const char *s = StringValuePtr(p); const char *s = StringValuePtr(p);
long n = RSTRING_LEN(p); long n = RSTRING_LEN(p);
@ -425,7 +425,7 @@ rb_feature_p(const char *feature, const char *ext, int rb, int expanded, const c
long index; long index;
if (RB_TYPE_P(this_feature_index, T_ARRAY)) { if (RB_TYPE_P(this_feature_index, T_ARRAY)) {
if (i >= RARRAY_LEN(this_feature_index)) break; if (i >= RARRAY_LEN(this_feature_index)) break;
entry = RARRAY_PTR(this_feature_index)[i]; entry = RARRAY_AREF(this_feature_index, i);
} }
else { else {
if (i > 0) break; if (i > 0) break;
@ -433,7 +433,7 @@ rb_feature_p(const char *feature, const char *ext, int rb, int expanded, const c
} }
index = FIX2LONG(entry); index = FIX2LONG(entry);
v = RARRAY_PTR(features)[index]; v = RARRAY_AREF(features, index);
f = StringValuePtr(v); f = StringValuePtr(v);
if ((n = RSTRING_LEN(v)) < len) continue; if ((n = RSTRING_LEN(v)) < len) continue;
if (strncmp(f, feature, len) != 0) { if (strncmp(f, feature, len) != 0) {

View File

@ -783,7 +783,7 @@ w_object(VALUE obj, struct dump_arg *arg, int limit)
w_long(len, arg); w_long(len, arg);
for (i=0; i<RARRAY_LEN(obj); i++) { for (i=0; i<RARRAY_LEN(obj); i++) {
w_object(RARRAY_PTR(obj)[i], arg, limit); w_object(RARRAY_AREF(obj, i), arg, limit);
if (len != RARRAY_LEN(obj)) { if (len != RARRAY_LEN(obj)) {
rb_raise(rb_eRuntimeError, "array modified during dump"); rb_raise(rb_eRuntimeError, "array modified during dump");
} }
@ -820,7 +820,7 @@ w_object(VALUE obj, struct dump_arg *arg, int limit)
w_long(len, arg); w_long(len, arg);
mem = rb_struct_members(obj); mem = rb_struct_members(obj);
for (i=0; i<len; i++) { for (i=0; i<len; i++) {
w_symbol(SYM2ID(RARRAY_PTR(mem)[i]), arg); w_symbol(SYM2ID(RARRAY_AREF(mem, i)), arg);
w_object(RSTRUCT_PTR(obj)[i], arg, limit); w_object(RSTRUCT_PTR(obj)[i], arg, limit);
} }
} }
@ -1462,7 +1462,7 @@ append_extmod(VALUE obj, VALUE extmod)
{ {
long i = RARRAY_LEN(extmod); long i = RARRAY_LEN(extmod);
while (i > 0) { while (i > 0) {
VALUE m = RARRAY_PTR(extmod)[--i]; VALUE m = RARRAY_AREF(extmod, --i);
rb_extend_object(obj, m); rb_extend_object(obj, m);
} }
return obj; return obj;
@ -1756,11 +1756,11 @@ r_object0(struct load_arg *arg, int *ivp, VALUE extmod)
for (i=0; i<len; i++) { for (i=0; i<len; i++) {
slot = r_symbol(arg); slot = r_symbol(arg);
if (RARRAY_PTR(mem)[i] != ID2SYM(slot)) { if (RARRAY_AREF(mem, i) != ID2SYM(slot)) {
rb_raise(rb_eTypeError, "struct %s not compatible (:%s for :%s)", rb_raise(rb_eTypeError, "struct %s not compatible (:%s for :%s)",
rb_class2name(klass), rb_class2name(klass),
rb_id2name(slot), rb_id2name(slot),
rb_id2name(SYM2ID(RARRAY_PTR(mem)[i]))); rb_id2name(SYM2ID(RARRAY_AREF(mem, i))));
} }
rb_ary_push(values, r_object(arg)); rb_ary_push(values, r_object(arg));
arg->readable -= 2; arg->readable -= 2;

View File

@ -260,8 +260,8 @@ do_coerce(VALUE *x, VALUE *y, int err)
return FALSE; return FALSE;
} }
*x = RARRAY_PTR(ary)[0]; *x = RARRAY_AREF(ary, 0);
*y = RARRAY_PTR(ary)[1]; *y = RARRAY_AREF(ary, 1);
return TRUE; return TRUE;
} }
@ -1846,8 +1846,8 @@ ruby_num_interval_step_size(VALUE from, VALUE to, VALUE step, int excl)
static VALUE static VALUE
num_step_size(VALUE from, VALUE args) num_step_size(VALUE from, VALUE args)
{ {
VALUE to = RARRAY_PTR(args)[0]; VALUE to = RARRAY_AREF(args, 0);
VALUE step = (RARRAY_LEN(args) > 1) ? RARRAY_PTR(args)[1] : INT2FIX(1); VALUE step = (RARRAY_LEN(args) > 1) ? RARRAY_AREF(args, 1) : INT2FIX(1);
return ruby_num_interval_step_size(from, to, step, FALSE); return ruby_num_interval_step_size(from, to, step, FALSE);
} }
/* /*
@ -3490,7 +3490,7 @@ fix_size(VALUE fix)
static VALUE static VALUE
int_upto_size(VALUE from, VALUE args) int_upto_size(VALUE from, VALUE args)
{ {
return ruby_num_interval_step_size(from, RARRAY_PTR(args)[0], INT2FIX(1), FALSE); return ruby_num_interval_step_size(from, RARRAY_AREF(args, 0), INT2FIX(1), FALSE);
} }
/* /*
@ -3537,7 +3537,7 @@ int_upto(VALUE from, VALUE to)
static VALUE static VALUE
int_downto_size(VALUE from, VALUE args) int_downto_size(VALUE from, VALUE args)
{ {
return ruby_num_interval_step_size(from, RARRAY_PTR(args)[0], INT2FIX(-1), FALSE); return ruby_num_interval_step_size(from, RARRAY_AREF(args, 0), INT2FIX(-1), FALSE);
} }
/* /*

8
pack.c
View File

@ -421,8 +421,8 @@ pack_pack(VALUE ary, VALUE fmt)
idx = 0; idx = 0;
#define TOO_FEW (rb_raise(rb_eArgError, toofew), 0) #define TOO_FEW (rb_raise(rb_eArgError, toofew), 0)
#define THISFROM (items > 0 ? RARRAY_PTR(ary)[idx] : TOO_FEW) #define THISFROM (items > 0 ? RARRAY_AREF(ary, idx) : TOO_FEW)
#define NEXTFROM (items-- > 0 ? RARRAY_PTR(ary)[idx++] : TOO_FEW) #define NEXTFROM (items-- > 0 ? RARRAY_AREF(ary, idx++) : TOO_FEW)
while (p < pend) { while (p < pend) {
int explicit_endian = 0; int explicit_endian = 0;
@ -1020,9 +1020,9 @@ pack_pack(VALUE ary, VALUE fmt)
VALUE big128 = rb_uint2big(128); VALUE big128 = rb_uint2big(128);
while (RB_TYPE_P(from, T_BIGNUM)) { while (RB_TYPE_P(from, T_BIGNUM)) {
from = rb_big_divmod(from, big128); from = rb_big_divmod(from, big128);
c = castchar(NUM2INT(RARRAY_PTR(from)[1]) | 0x80); /* mod */ c = castchar(NUM2INT(RARRAY_AREF(from, 1)) | 0x80); /* mod */
rb_str_buf_cat(buf, &c, sizeof(char)); rb_str_buf_cat(buf, &c, sizeof(char));
from = RARRAY_PTR(from)[0]; /* div */ from = RARRAY_AREF(from, 0); /* div */
} }
} }

View File

@ -5299,7 +5299,7 @@ coverage(const char *f, int n)
VALUE lines = rb_ary_new2(n); VALUE lines = rb_ary_new2(n);
int i; int i;
RBASIC(lines)->klass = 0; RBASIC(lines)->klass = 0;
for (i = 0; i < n; i++) RARRAY_PTR(lines)[i] = Qnil; for (i = 0; i < n; i++) RARRAY_ASET(lines, i, Qnil);
RARRAY(lines)->as.heap.len = n; RARRAY(lines)->as.heap.len = n;
rb_hash_aset(coverages, fname, lines); rb_hash_aset(coverages, fname, lines);
return lines; return lines;

6
proc.c
View File

@ -2208,9 +2208,9 @@ static VALUE
curry(VALUE dummy, VALUE args, int argc, VALUE *argv, VALUE passed_proc) curry(VALUE dummy, VALUE args, int argc, VALUE *argv, VALUE passed_proc)
{ {
VALUE proc, passed, arity; VALUE proc, passed, arity;
proc = RARRAY_PTR(args)[0]; proc = RARRAY_AREF(args, 0);
passed = RARRAY_PTR(args)[1]; passed = RARRAY_AREF(args, 1);
arity = RARRAY_PTR(args)[2]; arity = RARRAY_AREF(args, 2);
passed = rb_ary_plus(passed, rb_ary_new4(argc, argv)); passed = rb_ary_plus(passed, rb_ary_new4(argc, argv));
rb_ary_freeze(passed); rb_ary_freeze(passed);

View File

@ -1493,7 +1493,7 @@ check_exec_redirect1(VALUE ary, VALUE key, VALUE param)
else { else {
int i, n=0; int i, n=0;
for (i = 0 ; i < RARRAY_LEN(key); i++) { for (i = 0 ; i < RARRAY_LEN(key); i++) {
VALUE v = RARRAY_PTR(key)[i]; VALUE v = RARRAY_AREF(key, i);
VALUE fd = check_exec_redirect_fd(v, !NIL_P(param)); VALUE fd = check_exec_redirect_fd(v, !NIL_P(param));
rb_ary_push(ary, hide_obj(rb_assoc_new(fd, param))); rb_ary_push(ary, hide_obj(rb_assoc_new(fd, param)));
n++; n++;
@ -1808,21 +1808,21 @@ check_exec_fds_1(struct rb_execarg *eargp, VALUE h, int maxhint, VALUE ary)
if (ary != Qfalse) { if (ary != Qfalse) {
for (i = 0; i < RARRAY_LEN(ary); i++) { for (i = 0; i < RARRAY_LEN(ary); i++) {
VALUE elt = RARRAY_PTR(ary)[i]; VALUE elt = RARRAY_AREF(ary, i);
int fd = FIX2INT(RARRAY_PTR(elt)[0]); int fd = FIX2INT(RARRAY_AREF(elt, 0));
if (RTEST(rb_hash_lookup(h, INT2FIX(fd)))) { if (RTEST(rb_hash_lookup(h, INT2FIX(fd)))) {
rb_raise(rb_eArgError, "fd %d specified twice", fd); rb_raise(rb_eArgError, "fd %d specified twice", fd);
} }
if (ary == eargp->fd_open || ary == eargp->fd_dup2) if (ary == eargp->fd_open || ary == eargp->fd_dup2)
rb_hash_aset(h, INT2FIX(fd), Qtrue); rb_hash_aset(h, INT2FIX(fd), Qtrue);
else if (ary == eargp->fd_dup2_child) else if (ary == eargp->fd_dup2_child)
rb_hash_aset(h, INT2FIX(fd), RARRAY_PTR(elt)[1]); rb_hash_aset(h, INT2FIX(fd), RARRAY_AREF(elt, 1));
else /* ary == eargp->fd_close */ else /* ary == eargp->fd_close */
rb_hash_aset(h, INT2FIX(fd), INT2FIX(-1)); rb_hash_aset(h, INT2FIX(fd), INT2FIX(-1));
if (maxhint < fd) if (maxhint < fd)
maxhint = fd; maxhint = fd;
if (ary == eargp->fd_dup2 || ary == eargp->fd_dup2_child) { if (ary == eargp->fd_dup2 || ary == eargp->fd_dup2_child) {
fd = FIX2INT(RARRAY_PTR(elt)[1]); fd = FIX2INT(RARRAY_AREF(elt, 1));
if (maxhint < fd) if (maxhint < fd)
maxhint = fd; maxhint = fd;
} }
@ -1847,9 +1847,9 @@ check_exec_fds(struct rb_execarg *eargp)
if (eargp->fd_dup2_child) { if (eargp->fd_dup2_child) {
ary = eargp->fd_dup2_child; ary = eargp->fd_dup2_child;
for (i = 0; i < RARRAY_LEN(ary); i++) { for (i = 0; i < RARRAY_LEN(ary); i++) {
VALUE elt = RARRAY_PTR(ary)[i]; VALUE elt = RARRAY_AREF(ary, i);
int newfd = FIX2INT(RARRAY_PTR(elt)[0]); int newfd = FIX2INT(RARRAY_AREF(elt, 0));
int oldfd = FIX2INT(RARRAY_PTR(elt)[1]); int oldfd = FIX2INT(RARRAY_AREF(elt, 1));
int lastfd = oldfd; int lastfd = oldfd;
VALUE val = rb_hash_lookup(h, INT2FIX(lastfd)); VALUE val = rb_hash_lookup(h, INT2FIX(lastfd));
long depth = 0; long depth = 0;
@ -1945,8 +1945,8 @@ rb_check_argv(int argc, VALUE *argv)
if (RARRAY_LEN(tmp) != 2) { if (RARRAY_LEN(tmp) != 2) {
rb_raise(rb_eArgError, "wrong first argument"); rb_raise(rb_eArgError, "wrong first argument");
} }
prog = RARRAY_PTR(tmp)[0]; prog = RARRAY_AREF(tmp, 0);
argv[0] = RARRAY_PTR(tmp)[1]; argv[0] = RARRAY_AREF(tmp, 1);
SafeStringValue(prog); SafeStringValue(prog);
StringValueCStr(prog); StringValueCStr(prog);
prog = rb_str_new_frozen(prog); prog = rb_str_new_frozen(prog);
@ -2279,9 +2279,9 @@ rb_execarg_fixup(VALUE execarg_obj)
st_table *stenv = RHASH_TBL(envtbl); st_table *stenv = RHASH_TBL(envtbl);
long i; long i;
for (i = 0; i < RARRAY_LEN(envopts); i++) { for (i = 0; i < RARRAY_LEN(envopts); i++) {
VALUE pair = RARRAY_PTR(envopts)[i]; VALUE pair = RARRAY_AREF(envopts, i);
VALUE key = RARRAY_PTR(pair)[0]; VALUE key = RARRAY_AREF(pair, 0);
VALUE val = RARRAY_PTR(pair)[1]; VALUE val = RARRAY_AREF(pair, 1);
if (NIL_P(val)) { if (NIL_P(val)) {
st_data_t stkey = (st_data_t)key; st_data_t stkey = (st_data_t)key;
st_delete(stenv, &stkey, NULL); st_delete(stenv, &stkey, NULL);
@ -2560,9 +2560,9 @@ run_exec_dup2(VALUE ary, VALUE tmpbuf, struct rb_execarg *sargp, char *errmsg, s
/* initialize oldfd and newfd: O(n) */ /* initialize oldfd and newfd: O(n) */
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
VALUE elt = RARRAY_PTR(ary)[i]; VALUE elt = RARRAY_AREF(ary, i);
pairs[i].oldfd = FIX2INT(RARRAY_PTR(elt)[1]); pairs[i].oldfd = FIX2INT(RARRAY_AREF(elt, 1));
pairs[i].newfd = FIX2INT(RARRAY_PTR(elt)[0]); /* unique */ pairs[i].newfd = FIX2INT(RARRAY_AREF(elt, 0)); /* unique */
pairs[i].older_index = -1; pairs[i].older_index = -1;
} }
@ -2686,8 +2686,8 @@ run_exec_close(VALUE ary, char *errmsg, size_t errmsg_buflen)
int ret; int ret;
for (i = 0; i < RARRAY_LEN(ary); i++) { for (i = 0; i < RARRAY_LEN(ary); i++) {
VALUE elt = RARRAY_PTR(ary)[i]; VALUE elt = RARRAY_AREF(ary, i);
int fd = FIX2INT(RARRAY_PTR(elt)[0]); int fd = FIX2INT(RARRAY_AREF(elt, 0));
ret = redirect_close(fd); /* async-signal-safe */ ret = redirect_close(fd); /* async-signal-safe */
if (ret == -1) { if (ret == -1) {
ERRMSG("close"); ERRMSG("close");
@ -2705,12 +2705,12 @@ run_exec_open(VALUE ary, struct rb_execarg *sargp, char *errmsg, size_t errmsg_b
int ret; int ret;
for (i = 0; i < RARRAY_LEN(ary);) { for (i = 0; i < RARRAY_LEN(ary);) {
VALUE elt = RARRAY_PTR(ary)[i]; VALUE elt = RARRAY_AREF(ary, i);
int fd = FIX2INT(RARRAY_PTR(elt)[0]); int fd = FIX2INT(RARRAY_AREF(elt, 0));
VALUE param = RARRAY_PTR(elt)[1]; VALUE param = RARRAY_AREF(elt, 1);
char *path = RSTRING_PTR(RARRAY_PTR(param)[0]); char *path = RSTRING_PTR(RARRAY_AREF(param, 0));
int flags = NUM2INT(RARRAY_PTR(param)[1]); int flags = NUM2INT(RARRAY_AREF(param, 1));
int perm = NUM2INT(RARRAY_PTR(param)[2]); int perm = NUM2INT(RARRAY_AREF(param, 2));
int need_close = 1; int need_close = 1;
int fd2 = redirect_open(path, flags, perm); /* async-signal-safe */ int fd2 = redirect_open(path, flags, perm); /* async-signal-safe */
if (fd2 == -1) { if (fd2 == -1) {
@ -2719,8 +2719,8 @@ run_exec_open(VALUE ary, struct rb_execarg *sargp, char *errmsg, size_t errmsg_b
} }
rb_update_max_fd(fd2); rb_update_max_fd(fd2);
while (i < RARRAY_LEN(ary) && while (i < RARRAY_LEN(ary) &&
(elt = RARRAY_PTR(ary)[i], RARRAY_PTR(elt)[1] == param)) { (elt = RARRAY_AREF(ary, i), RARRAY_AREF(elt, 1) == param)) {
fd = FIX2INT(RARRAY_PTR(elt)[0]); fd = FIX2INT(RARRAY_AREF(elt, 0));
if (fd == fd2) { if (fd == fd2) {
need_close = 0; need_close = 0;
} }
@ -2755,9 +2755,9 @@ run_exec_dup2_child(VALUE ary, struct rb_execarg *sargp, char *errmsg, size_t er
int ret; int ret;
for (i = 0; i < RARRAY_LEN(ary); i++) { for (i = 0; i < RARRAY_LEN(ary); i++) {
VALUE elt = RARRAY_PTR(ary)[i]; VALUE elt = RARRAY_AREF(ary, i);
int newfd = FIX2INT(RARRAY_PTR(elt)[0]); int newfd = FIX2INT(RARRAY_AREF(elt, 0));
int oldfd = FIX2INT(RARRAY_PTR(elt)[1]); int oldfd = FIX2INT(RARRAY_AREF(elt, 1));
if (save_redirect_fd(newfd, sargp, errmsg, errmsg_buflen) < 0) /* async-signal-safe */ if (save_redirect_fd(newfd, sargp, errmsg, errmsg_buflen) < 0) /* async-signal-safe */
return -1; return -1;
@ -2811,8 +2811,8 @@ run_exec_rlimit(VALUE ary, struct rb_execarg *sargp, char *errmsg, size_t errmsg
{ {
long i; long i;
for (i = 0; i < RARRAY_LEN(ary); i++) { for (i = 0; i < RARRAY_LEN(ary); i++) {
VALUE elt = RARRAY_PTR(ary)[i]; VALUE elt = RARRAY_AREF(ary, i);
int rtype = NUM2INT(RARRAY_PTR(elt)[0]); int rtype = NUM2INT(RARRAY_AREF(elt, 0));
struct rlimit rlim; struct rlimit rlim;
if (sargp) { if (sargp) {
VALUE tmp, newary; VALUE tmp, newary;
@ -2820,7 +2820,7 @@ run_exec_rlimit(VALUE ary, struct rb_execarg *sargp, char *errmsg, size_t errmsg
ERRMSG("getrlimit"); ERRMSG("getrlimit");
return -1; return -1;
} }
tmp = hide_obj(rb_ary_new3(3, RARRAY_PTR(elt)[0], tmp = hide_obj(rb_ary_new3(3, RARRAY_AREF(elt, 0),
RLIM2NUM(rlim.rlim_cur), RLIM2NUM(rlim.rlim_cur),
RLIM2NUM(rlim.rlim_max))); RLIM2NUM(rlim.rlim_max)));
if (sargp->rlimit_limits == Qfalse) if (sargp->rlimit_limits == Qfalse)
@ -2829,8 +2829,8 @@ run_exec_rlimit(VALUE ary, struct rb_execarg *sargp, char *errmsg, size_t errmsg
newary = sargp->rlimit_limits; newary = sargp->rlimit_limits;
rb_ary_push(newary, tmp); rb_ary_push(newary, tmp);
} }
rlim.rlim_cur = NUM2RLIM(RARRAY_PTR(elt)[1]); rlim.rlim_cur = NUM2RLIM(RARRAY_AREF(elt, 1));
rlim.rlim_max = NUM2RLIM(RARRAY_PTR(elt)[2]); rlim.rlim_max = NUM2RLIM(RARRAY_AREF(elt, 2));
if (setrlimit(rtype, &rlim) == -1) { /* hopefully async-signal-safe */ if (setrlimit(rtype, &rlim) == -1) { /* hopefully async-signal-safe */
ERRMSG("setrlimit"); ERRMSG("setrlimit");
return -1; return -1;
@ -2905,9 +2905,9 @@ rb_execarg_run_options(const struct rb_execarg *eargp, struct rb_execarg *sargp,
long i; long i;
save_env(sargp); save_env(sargp);
for (i = 0; i < RARRAY_LEN(obj); i++) { for (i = 0; i < RARRAY_LEN(obj); i++) {
VALUE pair = RARRAY_PTR(obj)[i]; VALUE pair = RARRAY_AREF(obj, i);
VALUE key = RARRAY_PTR(pair)[0]; VALUE key = RARRAY_AREF(pair, 0);
VALUE val = RARRAY_PTR(pair)[1]; VALUE val = RARRAY_AREF(pair, 1);
if (NIL_P(val)) if (NIL_P(val))
ruby_setenv(StringValueCStr(key), 0); ruby_setenv(StringValueCStr(key), 0);
else else
@ -5527,7 +5527,7 @@ proc_setgroups(VALUE obj, VALUE ary)
groups = ALLOCA_N(rb_gid_t, ngroups); groups = ALLOCA_N(rb_gid_t, ngroups);
for (i = 0; i < ngroups; i++) { for (i = 0; i < ngroups; i++) {
VALUE g = RARRAY_PTR(ary)[i]; VALUE g = RARRAY_AREF(ary, i);
groups[i] = OBJ2GID(g); groups[i] = OBJ2GID(g);
} }

View File

@ -327,7 +327,7 @@ range_step_size(VALUE range, VALUE args)
VALUE b = RANGE_BEG(range), e = RANGE_END(range); VALUE b = RANGE_BEG(range), e = RANGE_END(range);
VALUE step = INT2FIX(1); VALUE step = INT2FIX(1);
if (args) { if (args) {
step = RARRAY_PTR(args)[0]; step = RARRAY_AREF(args, 0);
if (!rb_obj_is_kind_of(step, rb_cNumeric)) { if (!rb_obj_is_kind_of(step, rb_cNumeric)) {
step = rb_to_int(step); step = rb_to_int(step);
} }

View File

@ -1666,11 +1666,11 @@ nurat_marshal_load(VALUE self, VALUE a)
Check_Type(a, T_ARRAY); Check_Type(a, T_ARRAY);
if (RARRAY_LEN(a) != 2) if (RARRAY_LEN(a) != 2)
rb_raise(rb_eArgError, "marshaled rational must have an array whose length is 2 but %ld", RARRAY_LEN(a)); rb_raise(rb_eArgError, "marshaled rational must have an array whose length is 2 but %ld", RARRAY_LEN(a));
if (f_zero_p(RARRAY_PTR(a)[1])) if (f_zero_p(RARRAY_AREF(a, 1)))
rb_raise_zerodiv(); rb_raise_zerodiv();
rb_ivar_set(self, id_i_num, RARRAY_PTR(a)[0]); rb_ivar_set(self, id_i_num, RARRAY_AREF(a, 0));
rb_ivar_set(self, id_i_den, RARRAY_PTR(a)[1]); rb_ivar_set(self, id_i_den, RARRAY_AREF(a, 1));
return self; return self;
} }

2
re.c
View File

@ -2342,7 +2342,7 @@ rb_reg_preprocess_dregexp(VALUE ary, int options)
} }
for (i = 0; i < RARRAY_LEN(ary); i++) { for (i = 0; i < RARRAY_LEN(ary); i++) {
VALUE str = RARRAY_PTR(ary)[i]; VALUE str = RARRAY_AREF(ary, i);
VALUE buf; VALUE buf;
char *p, *end; char *p, *end;
rb_encoding *src_enc; rb_encoding *src_enc;

4
ruby.c
View File

@ -1442,8 +1442,8 @@ process_options(int argc, char **argv, struct cmdline_options *opt)
long i; long i;
VALUE load_path = GET_VM()->load_path; VALUE load_path = GET_VM()->load_path;
for (i = 0; i < RARRAY_LEN(load_path); ++i) { for (i = 0; i < RARRAY_LEN(load_path); ++i) {
RARRAY_PTR(load_path)[i] = RARRAY_ASET(load_path, i,
rb_enc_associate(rb_str_dup(RARRAY_PTR(load_path)[i]), lenc); rb_enc_associate(rb_str_dup(RARRAY_AREF(load_path, i)), lenc));
} }
} }
if (!(opt->disable & DISABLE_BIT(gems))) { if (!(opt->disable & DISABLE_BIT(gems))) {

View File

@ -6115,7 +6115,7 @@ rb_str_split_m(int argc, VALUE *argv, VALUE str)
if (NIL_P(limit) && lim == 0) { if (NIL_P(limit) && lim == 0) {
long len; long len;
while ((len = RARRAY_LEN(result)) > 0 && while ((len = RARRAY_LEN(result)) > 0 &&
(tmp = RARRAY_PTR(result)[len-1], RSTRING_LEN(tmp) == 0)) (tmp = RARRAY_AREF(result, len-1), RSTRING_LEN(tmp) == 0))
rb_ary_pop(result); rb_ary_pop(result);
} }

View File

@ -354,7 +354,7 @@ rb_struct_s_def(int argc, VALUE *argv, VALUE klass)
rest = rb_ary_tmp_new(argc); rest = rb_ary_tmp_new(argc);
for (i=0; i<argc; i++) { for (i=0; i<argc; i++) {
id = rb_to_id(argv[i]); id = rb_to_id(argv[i]);
RARRAY_PTR(rest)[i] = ID2SYM(id); RARRAY_ASET(rest, i, ID2SYM(id));
rb_ary_set_len(rest, i+1); rb_ary_set_len(rest, i+1);
} }
if (NIL_P(name)) { if (NIL_P(name)) {

View File

@ -708,8 +708,8 @@ thread_initialize(VALUE thread, VALUE args)
if (!proc || !RTEST(loc = rb_proc_location(proc))) { if (!proc || !RTEST(loc = rb_proc_location(proc))) {
rb_raise(rb_eThreadError, "already initialized thread"); rb_raise(rb_eThreadError, "already initialized thread");
} }
file = RSTRING_PTR(RARRAY_PTR(loc)[0]); file = RSTRING_PTR(RARRAY_AREF(loc, 0));
if (NIL_P(line = RARRAY_PTR(loc)[1])) { if (NIL_P(line = RARRAY_AREF(loc, 1))) {
rb_raise(rb_eThreadError, "already initialized thread - %s", rb_raise(rb_eThreadError, "already initialized thread - %s",
file); file);
} }
@ -1582,7 +1582,7 @@ rb_threadptr_pending_interrupt_include_p(rb_thread_t *th, VALUE err)
{ {
int i; int i;
for (i=0; i<RARRAY_LEN(th->pending_interrupt_queue); i++) { for (i=0; i<RARRAY_LEN(th->pending_interrupt_queue); i++) {
VALUE e = RARRAY_PTR(th->pending_interrupt_queue)[i]; VALUE e = RARRAY_AREF(th->pending_interrupt_queue, i);
if (rb_class_inherited_p(e, err)) { if (rb_class_inherited_p(e, err)) {
return TRUE; return TRUE;
} }
@ -1597,7 +1597,7 @@ rb_threadptr_pending_interrupt_deque(rb_thread_t *th, enum handle_interrupt_timi
int i; int i;
for (i=0; i<RARRAY_LEN(th->pending_interrupt_queue); i++) { for (i=0; i<RARRAY_LEN(th->pending_interrupt_queue); i++) {
VALUE err = RARRAY_PTR(th->pending_interrupt_queue)[i]; VALUE err = RARRAY_AREF(th->pending_interrupt_queue, i);
enum handle_interrupt_timing mask_timing = rb_threadptr_pending_interrupt_check_mask(th, CLASS_OF(err)); enum handle_interrupt_timing mask_timing = rb_threadptr_pending_interrupt_check_mask(th, CLASS_OF(err));
@ -3869,8 +3869,8 @@ clear_coverage_i(st_data_t key, st_data_t val, st_data_t dummy)
VALUE lines = (VALUE)val; VALUE lines = (VALUE)val;
for (i = 0; i < RARRAY_LEN(lines); i++) { for (i = 0; i < RARRAY_LEN(lines); i++) {
if (RARRAY_PTR(lines)[i] != Qnil) { if (RARRAY_AREF(lines, i) != Qnil) {
RARRAY_PTR(lines)[i] = INT2FIX(0); RARRAY_ASET(lines, i, INT2FIX(0));
} }
} }
return ST_CONTINUE; return ST_CONTINUE;
@ -5210,12 +5210,12 @@ update_coverage(rb_event_flag_t event, VALUE proc, VALUE self, ID id, VALUE klas
if (coverage && RBASIC(coverage)->klass == 0) { if (coverage && RBASIC(coverage)->klass == 0) {
long line = rb_sourceline() - 1; long line = rb_sourceline() - 1;
long count; long count;
if (RARRAY_PTR(coverage)[line] == Qnil) { if (RARRAY_AREF(coverage, line) == Qnil) {
return; return;
} }
count = FIX2LONG(RARRAY_PTR(coverage)[line]) + 1; count = FIX2LONG(RARRAY_AREF(coverage, line)) + 1;
if (POSFIXABLE(count)) { if (POSFIXABLE(count)) {
RARRAY_PTR(coverage)[line] = LONG2FIX(count); RARRAY_ASET(coverage, line, LONG2FIX(count));
} }
} }
} }

View File

@ -3057,10 +3057,10 @@ decorate_convpath(VALUE convpath, int ecflags)
len = n = RARRAY_LENINT(convpath); len = n = RARRAY_LENINT(convpath);
if (n != 0) { if (n != 0) {
VALUE pair = RARRAY_PTR(convpath)[n-1]; VALUE pair = RARRAY_AREF(convpath, n-1);
if (RB_TYPE_P(pair, T_ARRAY)) { if (RB_TYPE_P(pair, T_ARRAY)) {
const char *sname = rb_enc_name(rb_to_encoding(RARRAY_PTR(pair)[0])); const char *sname = rb_enc_name(rb_to_encoding(RARRAY_AREF(pair, 0)));
const char *dname = rb_enc_name(rb_to_encoding(RARRAY_PTR(pair)[1])); const char *dname = rb_enc_name(rb_to_encoding(RARRAY_AREF(pair, 1)));
transcoder_entry_t *entry = get_transcoder_entry(sname, dname); transcoder_entry_t *entry = get_transcoder_entry(sname, dname);
const rb_transcoder *tr = load_transcoder_entry(entry); const rb_transcoder *tr = load_transcoder_entry(entry);
if (!tr) if (!tr)

4
vm.c
View File

@ -2129,7 +2129,7 @@ m_core_hash_from_ary(VALUE self, VALUE ary)
assert(RARRAY_LEN(ary) % 2 == 0); assert(RARRAY_LEN(ary) % 2 == 0);
for (i=0; i<RARRAY_LEN(ary); i+=2) { for (i=0; i<RARRAY_LEN(ary); i+=2) {
rb_hash_aset(hash, RARRAY_PTR(ary)[i], RARRAY_PTR(ary)[i+1]); rb_hash_aset(hash, RARRAY_AREF(ary, i), RARRAY_AREF(ary, i+1));
} }
return hash; return hash;
@ -2142,7 +2142,7 @@ m_core_hash_merge_ary(VALUE self, VALUE hash, VALUE ary)
assert(RARRAY_LEN(ary) % 2 == 0); assert(RARRAY_LEN(ary) % 2 == 0);
for (i=0; i<RARRAY_LEN(ary); i+=2) { for (i=0; i<RARRAY_LEN(ary); i+=2) {
rb_hash_aset(hash, RARRAY_PTR(ary)[i], RARRAY_PTR(ary)[i+1]); rb_hash_aset(hash, RARRAY_AREF(ary, i), RARRAY_AREF(ary, i+1));
} }
return hash; return hash;

View File

@ -760,7 +760,7 @@ rb_vm_bugreport(void)
fprintf(stderr, "\n"); fprintf(stderr, "\n");
fprintf(stderr, "* Loaded features:\n\n"); fprintf(stderr, "* Loaded features:\n\n");
for (i=0; i<RARRAY_LEN(vm->loaded_features); i++) { for (i=0; i<RARRAY_LEN(vm->loaded_features); i++) {
name = RARRAY_PTR(vm->loaded_features)[i]; name = RARRAY_AREF(vm->loaded_features, i);
if (RB_TYPE_P(name, T_STRING)) { if (RB_TYPE_P(name, T_STRING)) {
fprintf(stderr, " %4d %.*s\n", i, fprintf(stderr, " %4d %.*s\n", i,
LIMITED_NAME_LENGTH(name), RSTRING_PTR(name)); LIMITED_NAME_LENGTH(name), RSTRING_PTR(name));

View File

@ -1256,15 +1256,15 @@ eval_string_with_cref(VALUE self, VALUE src, VALUE scope, NODE *cref, const char
(bt2 = rb_vm_backtrace_str_ary(th, 0, 0), RARRAY_LEN(bt2) > 0)) { (bt2 = rb_vm_backtrace_str_ary(th, 0, 0), RARRAY_LEN(bt2) > 0)) {
if (!NIL_P(mesg) && RB_TYPE_P(mesg, T_STRING) && !RSTRING_LEN(mesg)) { if (!NIL_P(mesg) && RB_TYPE_P(mesg, T_STRING) && !RSTRING_LEN(mesg)) {
if (OBJ_FROZEN(mesg)) { if (OBJ_FROZEN(mesg)) {
VALUE m = rb_str_cat(rb_str_dup(RARRAY_PTR(errat)[0]), ": ", 2); VALUE m = rb_str_cat(rb_str_dup(RARRAY_AREF(errat, 0)), ": ", 2);
rb_ivar_set(errinfo, id_mesg, rb_str_append(m, mesg)); rb_ivar_set(errinfo, id_mesg, rb_str_append(m, mesg));
} }
else { else {
rb_str_update(mesg, 0, 0, rb_str_new2(": ")); rb_str_update(mesg, 0, 0, rb_str_new2(": "));
rb_str_update(mesg, 0, 0, RARRAY_PTR(errat)[0]); rb_str_update(mesg, 0, 0, RARRAY_AREF(errat, 0));
} }
} }
RARRAY_PTR(errat)[0] = RARRAY_PTR(bt2)[0]; RARRAY_AREF(errat, 0) = RARRAY_AREF(bt2, 0);
} }
} }
rb_exc_raise(errinfo); rb_exc_raise(errinfo);

View File

@ -1574,8 +1574,8 @@ rb_obj_respond_to(VALUE obj, ID id, int priv)
(FL_TEST(klass, FL_SINGLETON) ? '.' : '#'), (FL_TEST(klass, FL_SINGLETON) ? '.' : '#'),
QUOTE_ID(id)); QUOTE_ID(id));
if (!NIL_P(location)) { if (!NIL_P(location)) {
VALUE path = RARRAY_PTR(location)[0]; VALUE path = RARRAY_AREF(location, 0);
VALUE line = RARRAY_PTR(location)[1]; VALUE line = RARRAY_AREF(location, 1);
if (!NIL_P(path)) { if (!NIL_P(path)) {
rb_compile_warn(RSTRING_PTR(path), NUM2INT(line), rb_compile_warn(RSTRING_PTR(path), NUM2INT(line),
"respond_to? is defined here"); "respond_to? is defined here");