summaryrefslogtreecommitdiffhomepage
path: root/src/vm.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2012-10-28 10:43:31 -0700
committerYukihiro "Matz" Matsumoto <[email protected]>2012-10-28 10:43:31 -0700
commit69e2d272457f2f096c2514d8afb90006ed577fc9 (patch)
treecda613d41422a763d824ce998b0e6d0cefd4aaa3 /src/vm.c
parent559933f577d5073464aa06facc1b754de6225d8a (diff)
parent1933e2660c86c0731806993a9a212116bb454622 (diff)
downloadmruby-69e2d272457f2f096c2514d8afb90006ed577fc9.tar.gz
mruby-69e2d272457f2f096c2514d8afb90006ed577fc9.zip
Merge pull request #507 from monaka/pr-not-use-memset-in-structure-initialization
Use substitution instead of memset in structure initializations.
Diffstat (limited to 'src/vm.c')
-rw-r--r--src/vm.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/vm.c b/src/vm.c
index 693e2413a..120e0d4c0 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -100,15 +100,16 @@ stack_extend(mrb_state *mrb, int room, int keep)
envadjust(mrb, oldbase, mrb->stbase);
}
if (room > keep) {
-#ifndef MRB_NAN_BOXING
- memset(mrb->stack+keep, 0, sizeof(mrb_value) * (room-keep));
-#else
int i;
for (i=keep; i<room; i++) {
+#ifndef MRB_NAN_BOXING
+ static const mrb_value mrb_value_zero = { { 0 } };
+ mrb->stack[i] = mrb_value_zero;
+#else
SET_NIL_VALUE(mrb->stack[i]);
- }
#endif
+ }
}
}