summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-08-06 11:26:54 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-08-06 17:01:59 +0900
commit57a798e687e57c35fb8822c17a2007a4dd05df56 (patch)
tree7f763bf921bc89fd8874a425459c5715a733f272 /src
parent755233ef7d7c462a18180aca1d7facb81c5af431 (diff)
downloadmruby-57a798e687e57c35fb8822c17a2007a4dd05df56.tar.gz
mruby-57a798e687e57c35fb8822c17a2007a4dd05df56.zip
Use `memset()` to clear stack unless `MRB_NAN_BOXING`.
Diffstat (limited to 'src')
-rw-r--r--src/vm.c10
1 files 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
}