array.c (mrb_ary_push_m): call mrb_ary_push() when argc == 1

This commit is contained in:
Yukihiro "Matz" Matsumoto
2023-02-11 14:23:48 +09:00
parent b4c936b533
commit 2adb1043f4
+5 -1
View File
@@ -543,9 +543,13 @@ mrb_ary_push_m(mrb_state *mrb, mrb_value self)
mrb_int len, len2;
struct RArray *a;
argc = mrb_get_argc(mrb);
if (argc == 1) {
mrb_ary_push(mrb, self, mrb_get_argv(mrb)[0]);
return self;
}
a = mrb_ary_ptr(self);
ary_modify(mrb, a);
argc = mrb_get_argc(mrb);
len = ARY_LEN(a);
len2 = len + argc;
if (ARY_CAPA(a) < len2) {