summaryrefslogtreecommitdiff
path: root/array.c
diff options
context:
space:
mode:
Diffstat (limited to 'array.c')
-rw-r--r--array.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/array.c b/array.c
index 5aa268bd82..69bf714e6f 100644
--- a/array.c
+++ b/array.c
@@ -427,7 +427,12 @@ rb_ary_unshift_m(argc, argv, ary)
VALUE ary;
{
long len = RARRAY(ary)->len;
-
+
+ if (argc < 0) {
+ rb_raise(rb_eArgError, "negative number of arguments");
+ }
+ if (argc == 0) return ary;
+
/* make rooms by setting the last item */
rb_ary_store(ary, len + argc - 1, Qnil);