diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-03-25 07:36:47 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-03-25 07:36:47 -0700 |
| commit | 9d550390e5e3e85daffc0d430abad8291d472380 (patch) | |
| tree | 0acd012a0b8f8f28628a4834191bb183ab6f0020 /src/codegen.c | |
| parent | 2d77dcc9bc91a1d975640c6f97a74279e1f1355e (diff) | |
| parent | ed2da91d12f0b35d223e03cae91c7556c43fb6f9 (diff) | |
| download | mruby-9d550390e5e3e85daffc0d430abad8291d472380.tar.gz mruby-9d550390e5e3e85daffc0d430abad8291d472380.zip | |
Merge pull request #1065 from monaka/pr-reduce-stdio-dependency
Reduce stdio dependency
Diffstat (limited to 'src/codegen.c')
| -rw-r--r-- | src/codegen.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/codegen.c b/src/codegen.c index 5b86c90a9..e8fcce5c2 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -1848,12 +1848,13 @@ codegen(codegen_scope *s, node *tree, int val) case NODE_BACK_REF: { - char buf[4]; - int len; + char buf[2] = { '$' }; + mrb_value str; int sym; - len = snprintf(buf, sizeof(buf), "$%c", (int)(intptr_t)tree); - sym = new_sym(s, mrb_intern2(s->mrb, buf, len)); + buf[1] = (char)(intptr_t)tree; + str = mrb_str_new(s->mrb, buf, 2); + sym = new_sym(s, mrb_intern_str(s->mrb, str)); genop(s, MKOP_ABx(OP_GETGLOBAL, cursp(), sym)); push(); } @@ -1861,12 +1862,14 @@ codegen(codegen_scope *s, node *tree, int val) case NODE_NTH_REF: { - char buf[4]; - int len; int sym; + mrb_state *mrb = s->mrb; + mrb_value fix = mrb_fixnum_value((intptr_t)tree); + mrb_value str = mrb_str_buf_new(mrb, 4); - len = snprintf(buf, sizeof(buf), "$%d", (int)(intptr_t)tree); - sym = new_sym(s, mrb_intern2(s->mrb, buf, len)); + mrb_str_buf_cat(mrb, str, "$", 1); + mrb_str_buf_append(mrb, str, mrb_fix2str(mrb, fix, 10)); + sym = new_sym(s, mrb_intern_str(mrb, str)); genop(s, MKOP_ABx(OP_GETGLOBAL, cursp(), sym)); push(); } |
