From 57a798e687e57c35fb8822c17a2007a4dd05df56 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 6 Aug 2020 11:26:54 +0900 Subject: Use `memset()` to clear stack unless `MRB_NAN_BOXING`. --- src/vm.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/vm.c b/src/vm.c index c0a9ec6f1..cbf856d74 100644 --- a/src/vm.c +++ b/src/vm.c @@ -102,17 +102,13 @@ void mrb_method_missing(mrb_state *mrb, mrb_sym name, mrb_value self, mrb_value static inline void stack_clear(mrb_value *from, size_t count) { -#ifndef MRB_NAN_BOXING - const mrb_value mrb_value_zero = { { 0 } }; - - while (count-- > 0) { - *from++ = mrb_value_zero; - } -#else +#ifdef MRB_NAN_BOXING while (count-- > 0) { SET_NIL_VALUE(*from); from++; } +#else + memset(from, 0, sizeof(mrb_value)*count); #endif } -- cgit v1.2.3