Skip to content

Commit 4dac03c

Browse files
committed
Merge pull request mruby#2883 from jbreeden/array_join_nil
Patching array join
2 parents 39dd182 + dd558a1 commit 4dac03c

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

src/array.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ mrb_ary_plus(mrb_state *mrb, mrb_value self)
295295

296296
mrb_get_args(mrb, "a", &ptr, &blen);
297297
if (ARY_MAX_SIZE - blen < a1->len) {
298-
mrb_raise(mrb, E_ARGUMENT_ERROR, "array size too big");
298+
mrb_raise(mrb, E_ARGUMENT_ERROR, "array size too big");
299299
}
300300
a2 = ary_new_capa(mrb, a1->len + blen);
301301
array_copy(a2->ptr, a1->ptr, a1->len);
@@ -349,7 +349,7 @@ mrb_ary_times(mrb_state *mrb, mrb_value self)
349349
}
350350
if (times == 0) return mrb_ary_new(mrb);
351351
if (ARY_MAX_SIZE / times < a1->len) {
352-
mrb_raise(mrb, E_ARGUMENT_ERROR, "array size too big");
352+
mrb_raise(mrb, E_ARGUMENT_ERROR, "array size too big");
353353
}
354354
a2 = ary_new_capa(mrb, a1->len * times);
355355
ptr = a2->ptr;
@@ -1031,7 +1031,11 @@ mrb_ary_join_m(mrb_state *mrb, mrb_value ary)
10311031
{
10321032
mrb_value sep = mrb_nil_value();
10331033

1034-
mrb_get_args(mrb, "|S", &sep);
1034+
mrb_get_args(mrb, "|o", &sep);
1035+
if (!(mrb_nil_p(sep) || mrb_type(sep) == MRB_TT_STRING)) {
1036+
mrb_raise(mrb, E_TYPE_ERROR, "expected String");
1037+
return mrb_nil_value();
1038+
}
10351039
return mrb_ary_join(mrb, ary, sep);
10361040
}
10371041

0 commit comments

Comments
 (0)