unshift(*args)
public
Prepends objects to the front of array. other elements up one.
a = [ "b", "c", "d" ]
a.unshift("a")
a.unshift(1, 2)
static VALUE
rb_ary_unshift_m(int argc, VALUE *argv, VALUE ary)
{
long len;
if (argc == 0) return ary;
rb_ary_modify(ary);
if (ARY_CAPA(ary) <= (len = RARRAY_LEN(ary)) + argc) {
ary_resize_capa(ary, len + argc + ARY_DEFAULT_SIZE);
}
/* sliding items */
MEMMOVE(RARRAY_PTR(ary) + argc, RARRAY_PTR(ary), VALUE, len);
MEMCPY(RARRAY_PTR(ary), argv, VALUE, argc);
ARY_INCREASE_LEN(ary, argc);
return ary;
}