summaryrefslogtreecommitdiffhomepage
path: root/src/codegen.c
diff options
context:
space:
mode:
authorMasaki Muranaka <[email protected]>2012-10-24 17:00:54 +0900
committerMasaki Muranaka <[email protected]>2012-10-29 11:29:57 +0900
commitf3090c3000a469475385f2bb861a6ad7e7f635ae (patch)
tree7a6856692ce65dcc0b5e216f497888b2621eae29 /src/codegen.c
parentf5b6f03c9e802702c6f5f74bc3e778f3c4d8baca (diff)
downloadmruby-f3090c3000a469475385f2bb861a6ad7e7f635ae.tar.gz
mruby-f3090c3000a469475385f2bb861a6ad7e7f635ae.zip
Use substitution instead of memset in structure initialization.
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;