diff options
| author | Masaki Muranaka <[email protected]> | 2013-03-24 13:49:19 +0900 |
|---|---|---|
| committer | Masaki Muranaka <[email protected]> | 2013-03-24 13:49:19 +0900 |
| commit | 3401ed7bab639f6c3b820cf7d15b1c7417d4b585 (patch) | |
| tree | c9140fde99304b5c48cad70ab1f04fc69b38a703 /src/codegen.c | |
| parent | 29d84a163508b6246d6ebb3fe088bb73682c07e7 (diff) | |
| download | mruby-3401ed7bab639f6c3b820cf7d15b1c7417d4b585.tar.gz mruby-3401ed7bab639f6c3b820cf7d15b1c7417d4b585.zip | |
Reduce using snprintf(). They can replace by mruby API.
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(); } |
