summaryrefslogtreecommitdiff
path: root/array.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-03-05 05:22:17 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-03-05 05:22:17 +0000
commit39787ea14db33dd4265d7f6271cd2d59ccaeff37 (patch)
tree49743edd8a3dbb4fa4cfea6c472f3398edfe0639 /array.c
parent413db1b036083f76a2b34895af3c8a3204e174f2 (diff)
* numeric.c (fix_to_s): avoid rb_scan_args() when no argument
given. * bignum.c (rb_big_to_s): ditto. * enum.c (enum_first): ditto. * eval_jump.c (rb_f_catch): ditto. * io.c (rb_obj_display): ditto. * class.c (rb_obj_singleton_methods): ditto. * object.c (rb_class_initialize): ditto. * random.c (rb_f_srand): ditto. * range.c (range_step): ditto. * re.c (rb_reg_s_last_match): ditto. * string.c (rb_str_to_i): ditto. * string.c (rb_str_each_line): ditto. * string.c (rb_str_chomp_bang): ditto. * string.c (rb_str_sum): ditto. * string.c (str_modifiable): declare inline. * string.c (str_independent): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'array.c')
-rw-r--r--array.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/array.c b/array.c
index 5564f697a1..2eef3ed387 100644
--- a/array.c
+++ b/array.c
@@ -290,7 +290,7 @@ rb_ary_initialize(int argc, VALUE *argv, VALUE ary)
VALUE size, val;
rb_ary_modify(ary);
- if (rb_scan_args(argc, argv, "02", &size, &val) == 0) {
+ if (argc == 0) {
if (RARRAY_PTR(ary) && !ARY_SHARED_P(ary)) {
free(RARRAY(ary)->ptr);
}
@@ -300,7 +300,7 @@ rb_ary_initialize(int argc, VALUE *argv, VALUE ary)
}
return ary;
}
-
+ rb_scan_args(argc, argv, "02", &size, &val);
if (argc == 1 && !FIXNUM_P(size)) {
val = rb_check_array_type(size);
if (!NIL_P(val)) {
@@ -877,19 +877,19 @@ rb_ary_index(int argc, VALUE *argv, VALUE ary)
VALUE val;
long i;
- if (rb_scan_args(argc, argv, "01", &val) == 0) {
+ if (argc == 0) {
RETURN_ENUMERATOR(ary, 0, 0);
for (i=0; i<RARRAY_LEN(ary); i++) {
if (RTEST(rb_yield(RARRAY_PTR(ary)[i]))) {
return LONG2NUM(i);
}
}
+ return Qnil;
}
- else {
- for (i=0; i<RARRAY_LEN(ary); i++) {
- if (rb_equal(RARRAY_PTR(ary)[i], val))
- return LONG2NUM(i);
- }
+ rb_scan_args(argc, argv, "01", &val);
+ for (i=0; i<RARRAY_LEN(ary); i++) {
+ if (rb_equal(RARRAY_PTR(ary)[i], val))
+ return LONG2NUM(i);
}
return Qnil;
}
@@ -915,7 +915,7 @@ rb_ary_rindex(int argc, VALUE *argv, VALUE ary)
VALUE val;
long i = RARRAY_LEN(ary);
- if (rb_scan_args(argc, argv, "01", &val) == 0) {
+ if (argc == 0) {
RETURN_ENUMERATOR(ary, 0, 0);
while (i--) {
if (RTEST(rb_yield(RARRAY_PTR(ary)[i])))
@@ -924,14 +924,14 @@ rb_ary_rindex(int argc, VALUE *argv, VALUE ary)
i = RARRAY_LEN(ary);
}
}
+ return Qnil;
}
- else {
- while (i--) {
- if (rb_equal(RARRAY_PTR(ary)[i], val))
- return LONG2NUM(i);
- if (i > RARRAY_LEN(ary)) {
- i = RARRAY_LEN(ary);
- }
+ rb_scan_args(argc, argv, "01", &val);
+ while (i--) {
+ if (rb_equal(RARRAY_PTR(ary)[i], val))
+ return LONG2NUM(i);
+ if (i > RARRAY_LEN(ary)) {
+ i = RARRAY_LEN(ary);
}
}
return Qnil;