summaryrefslogtreecommitdiffhomepage
path: root/src/codegen.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/codegen.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/codegen.c')
-rw-r--r--src/codegen.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/codegen.c b/src/codegen.c
index 2d01ed701..7c3182599 100644
--- a/src/codegen.c
+++ b/src/codegen.c
@@ -453,7 +453,10 @@ new_sym(codegen_scope *s, mrb_sym sym)
}
if (s->slen > 125 && s->slen < 256) {
s->syms = (mrb_sym *)codegen_realloc(s, s->syms, sizeof(mrb_sym)*65536);
- memset(s->syms+s->slen, 0, sizeof(mrb_sym)*(256-s->slen));
+ for (i = 0; i < 256 - s->slen; i++) {
+ static const mrb_sym mrb_sym_zero = { 0 };
+ s->syms[i + s->slen] = mrb_sym_zero;
+ }
s->slen = 256;
}
s->syms[s->slen] = sym;
@@ -2049,11 +2052,12 @@ codegen(codegen_scope *s, node *tree, int val)
static codegen_scope*
scope_new(mrb_state *mrb, codegen_scope *prev, node *lv)
{
+ static const codegen_scope codegen_scope_zero = { 0 };
mrb_pool *pool = mrb_pool_open(mrb);
codegen_scope *p = (codegen_scope *)mrb_pool_alloc(pool, sizeof(codegen_scope));
if (!p) return 0;
- memset(p, 0, sizeof(codegen_scope));
+ *p = codegen_scope_zero;
p->mrb = mrb;
p->mpool = pool;
if (!prev) return p;