diff options
| -rw-r--r-- | src/array.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/array.c b/src/array.c index 8902f2dda..9013492fb 100644 --- a/src/array.c +++ b/src/array.c @@ -244,10 +244,12 @@ mrb_ary_s_create(mrb_state *mrb, mrb_value self) static void ary_concat(mrb_state *mrb, struct RArray *a, struct RArray *a2) { + mrb_int len; + if (a2->len > ARY_MAX_SIZE - a->len) { mrb_raise(mrb, E_ARGUMENT_ERROR, "array size too big"); } - mrb_int len = a->len + a2->len; + len = a->len + a2->len; ary_modify(mrb, a); if (a->aux.capa < len) { |
