summaryrefslogtreecommitdiff
path: root/struct.c
diff options
context:
space:
mode:
Diffstat (limited to 'struct.c')
-rw-r--r--struct.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/struct.c b/struct.c
index 2076f5709e..9da9bbdfe3 100644
--- a/struct.c
+++ b/struct.c
@@ -834,10 +834,13 @@ struct_alloc(VALUE klass)
else {
NEWOBJ_OF(st, struct RStruct, klass, flags, sizeof(struct RStruct), 0);
+ st->as.heap.ptr = NULL;
+ st->as.heap.fields_obj = 0;
+ st->as.heap.len = 0;
+
st->as.heap.ptr = struct_heap_alloc((VALUE)st, n);
rb_mem_clear((VALUE *)st->as.heap.ptr, n);
st->as.heap.len = n;
- st->as.heap.fields_obj = 0;
return (VALUE)st;
}