summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/gc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gc.c b/src/gc.c
index 46699aea3..37e4a363b 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -326,6 +326,7 @@ struct RBasic*
mrb_obj_alloc(mrb_state *mrb, enum mrb_vtype ttype, struct RClass *cls)
{
struct RBasic *p;
+ static const RVALUE RVALUE_zero = { { { 0 } } };
#ifdef MRB_GC_STRESS
mrb_garbage_collect(mrb);
@@ -345,7 +346,7 @@ mrb_obj_alloc(mrb_state *mrb, enum mrb_vtype ttype, struct RClass *cls)
mrb->live++;
gc_protect(mrb, p);
- memset(p, 0, sizeof(RVALUE));
+ *(RVALUE *)p = RVALUE_zero;
p->tt = ttype;
p->c = cls;
paint_partial_white(mrb, p);