summaryrefslogtreecommitdiff
path: root/array.c
diff options
context:
space:
mode:
Diffstat (limited to 'array.c')
-rw-r--r--array.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/array.c b/array.c
index 983ce9b951..6150d862dd 100644
--- a/array.c
+++ b/array.c
@@ -167,6 +167,7 @@ ary_s_new(argc, argv, klass)
VALUE *argv;
VALUE klass;
{
+ int len = 0;
VALUE size, val;
NEWOBJ(ary, struct RArray);
OBJSETUP(ary, klass, T_ARRAY);
@@ -186,10 +187,11 @@ ary_s_new(argc, argv, klass)
ArgError("array size too big");
}
ary->capa = capa;
- ary->len = capa;
+ len = capa;
}
ary->ptr = ALLOC_N(VALUE, ary->capa);
- memfill(ary->ptr, ary->len, val);
+ memfill(ary->ptr, len, val);
+ ary->len = len;
obj_call_init((VALUE)ary);
return (VALUE)ary;