summaryrefslogtreecommitdiff
path: root/array.c
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2025-09-08 17:29:27 +0200
committerPeter Zhu <peter@peterzhu.ca>2025-09-17 09:25:17 -0400
commit2d57e9e2a185c68d6f1cd3f067f19c23fe5f3fc1 (patch)
treea72d7921dcbce0e41fa199e4f02ae0f814c41315 /array.c
parentcfc5c565038d3ed00a739135911e6188929c729a (diff)
Clear out memory for newly allocated array
Diffstat (limited to 'array.c')
-rw-r--r--array.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/array.c b/array.c
index d9dff28ad9..2ba95bef18 100644
--- a/array.c
+++ b/array.c
@@ -695,6 +695,11 @@ ary_alloc_heap(VALUE klass)
NEWOBJ_OF(ary, struct RArray, klass,
T_ARRAY | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0),
sizeof(struct RArray), 0);
+
+ ary->as.heap.len = 0;
+ ary->as.heap.aux.capa = 0;
+ ary->as.heap.ptr = NULL;
+
return (VALUE)ary;
}
@@ -808,6 +813,11 @@ ec_ary_alloc_heap(rb_execution_context_t *ec, VALUE klass)
NEWOBJ_OF(ary, struct RArray, klass,
T_ARRAY | (RGENGC_WB_PROTECTED_ARRAY ? FL_WB_PROTECTED : 0),
sizeof(struct RArray), ec);
+
+ ary->as.heap.len = 0;
+ ary->as.heap.aux.capa = 0;
+ ary->as.heap.ptr = NULL;
+
return (VALUE)ary;
}