summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authordearblue <[email protected]>2019-05-25 12:12:21 +0900
committerdearblue <[email protected]>2019-05-25 12:12:21 +0900
commit56e0e1934d4ec751d83f9f54ce93ca74b0e21194 (patch)
treefdcee96bf8d18a1c598dfef92ca79aa12e77f65d /src
parentc6f30e8f17e1b061aaa37b500f2e5939f229542e (diff)
downloadmruby-56e0e1934d4ec751d83f9f54ce93ca74b0e21194.tar.gz
mruby-56e0e1934d4ec751d83f9f54ce93ca74b0e21194.zip
Name the return value of `mrb_range_beg_len()`
Diffstat (limited to 'src')
-rw-r--r--src/array.c8
-rw-r--r--src/range.c12
-rw-r--r--src/string.c4
3 files changed, 12 insertions, 12 deletions
diff --git a/src/array.c b/src/array.c
index d4302cb22..bd9b4d358 100644
--- a/src/array.c
+++ b/src/array.c
@@ -858,7 +858,7 @@ mrb_ary_aget(mrb_state *mrb, mrb_value self)
switch (mrb_type(index)) {
/* a[n..m] */
case MRB_TT_RANGE:
- if (mrb_range_beg_len(mrb, index, &i, &len, ARY_LEN(a), TRUE) == 1) {
+ if (mrb_range_beg_len(mrb, index, &i, &len, ARY_LEN(a), TRUE) == MRB_RANGE_OK) {
return ary_subseq(mrb, a, i, len);
}
else {
@@ -927,13 +927,13 @@ mrb_ary_aset(mrb_state *mrb, mrb_value self)
if (mrb_get_args(mrb, "oo|o", &v1, &v2, &v3) == 2) {
/* a[n..m] = v */
switch (mrb_range_beg_len(mrb, v1, &i, &len, RARRAY_LEN(self), FALSE)) {
- case 0: /* not range */
+ case MRB_RANGE_TYPE_MISMATCH:
mrb_ary_set(mrb, self, aget_index(mrb, v1), v2);
break;
- case 1: /* range */
+ case MRB_RANGE_OK:
mrb_ary_splice(mrb, self, i, len, v2);
break;
- case 2: /* out of range */
+ case MRB_RANGE_OUT:
mrb_raisef(mrb, E_RANGE_ERROR, "%S out of range", v1);
break;
}
diff --git a/src/range.c b/src/range.c
index 21771c8ec..9036ef093 100644
--- a/src/range.c
+++ b/src/range.c
@@ -352,7 +352,7 @@ mrb_get_values_at(mrb_state *mrb, mrb_value obj, mrb_int olen, mrb_int argc, con
if (mrb_fixnum_p(argv[i])) {
mrb_ary_push(mrb, result, func(mrb, obj, mrb_fixnum(argv[i])));
}
- else if (mrb_range_beg_len(mrb, argv[i], &beg, &len, olen, FALSE) == 1) {
+ else if (mrb_range_beg_len(mrb, argv[i], &beg, &len, olen, FALSE) == MRB_RANGE_OK) {
mrb_int const end = olen < beg + len ? olen : beg + len;
for (j = beg; j < end; ++j) {
mrb_ary_push(mrb, result, func(mrb, obj, j));
@@ -398,13 +398,13 @@ mrb_range_new(mrb_state *mrb, mrb_value beg, mrb_value end, mrb_bool excl)
return mrb_range_value(r);
}
-MRB_API mrb_int
+MRB_API enum mrb_range_beg_len
mrb_range_beg_len(mrb_state *mrb, mrb_value range, mrb_int *begp, mrb_int *lenp, mrb_int len, mrb_bool trunc)
{
mrb_int beg, end;
struct RRange *r;
- if (mrb_type(range) != MRB_TT_RANGE) return 0;
+ if (mrb_type(range) != MRB_TT_RANGE) return MRB_RANGE_TYPE_MISMATCH;
r = mrb_range_ptr(mrb, range);
beg = mrb_int(mrb, RANGE_BEG(r));
@@ -412,11 +412,11 @@ mrb_range_beg_len(mrb_state *mrb, mrb_value range, mrb_int *begp, mrb_int *lenp,
if (beg < 0) {
beg += len;
- if (beg < 0) return 2;
+ if (beg < 0) return MRB_RANGE_OUT;
}
if (trunc) {
- if (beg > len) return 2;
+ if (beg > len) return MRB_RANGE_OUT;
if (end > len) end = len;
}
@@ -427,7 +427,7 @@ mrb_range_beg_len(mrb_state *mrb, mrb_value range, mrb_int *begp, mrb_int *lenp,
*begp = beg;
*lenp = len;
- return 1;
+ return MRB_RANGE_OK;
}
void
diff --git a/src/string.c b/src/string.c
index 578e3bdcc..db2d73e32 100644
--- a/src/string.c
+++ b/src/string.c
@@ -1041,9 +1041,9 @@ num_index:
len = RSTRING_CHAR_LEN(str);
switch (mrb_range_beg_len(mrb, indx, &beg, &len, len, TRUE)) {
- case 1:
+ case MRB_RANGE_OK:
return str_subseq(mrb, str, beg, len);
- case 2:
+ case MRB_RANGE_OUT:
return mrb_nil_value();
default:
break;