diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-11-20 07:29:55 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-11-20 07:29:55 +0900 |
| commit | d73dfa87087879ca3b06e1f30a68a120549e0a57 (patch) | |
| tree | a4bc7d8fe8f495fdf5784c7e6477c8abe3856cd9 /src/vm.c | |
| parent | 6742421907765ecd4bfb80f74a080e91bf5b0d52 (diff) | |
| parent | 54c5b12fb7bc5fdd57326780e970ee467387f81a (diff) | |
| download | mruby-d73dfa87087879ca3b06e1f30a68a120549e0a57.tar.gz mruby-d73dfa87087879ca3b06e1f30a68a120549e0a57.zip | |
resolve conflict
Diffstat (limited to 'src/vm.c')
| -rw-r--r-- | src/vm.c | 11 |
1 files changed, 4 insertions, 7 deletions
@@ -555,7 +555,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int /* mrb_assert(mrb_proc_cfunc_p(proc)) */ mrb_irep *irep = proc->body.irep; mrb_code *pc = irep->iseq; - struct irep_pool *pool = irep->pool; + mrb_value *pool = irep->pool; mrb_sym *syms = irep->syms; mrb_value *regs = NULL; mrb_code i; @@ -619,10 +619,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int CASE(OP_LOADL) { /* A Bx R(A) := Pool(Bx) */ - if (pool[GETARG_Bx(i)].type == IREP_TT_FLOAT) - SET_FLT_VALUE(mrb, regs[GETARG_A(i)], pool[GETARG_Bx(i)].value.f); - else - SET_INT_VALUE(regs[GETARG_A(i)], pool[GETARG_Bx(i)].value.i); + regs[GETARG_A(i)] = pool[GETARG_Bx(i)]; NEXT; } @@ -1943,7 +1940,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int CASE(OP_STRING) { /* A Bx R(A) := str_new(Lit(Bx)) */ - regs[GETARG_A(i)] = mrb_str_new(mrb, pool[GETARG_Bx(i)].value.s->buf, pool[GETARG_Bx(i)].value.s->len); + regs[GETARG_A(i)] = mrb_str_dup(mrb, pool[GETARG_Bx(i)]); mrb_gc_arena_restore(mrb, ai); NEXT; } @@ -2139,7 +2136,7 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int CASE(OP_ERR) { /* Bx raise RuntimeError with message Lit(Bx) */ - mrb_value msg = mrb_str_new(mrb, pool[GETARG_Bx(i)].value.s->buf, pool[GETARG_Bx(i)].value.s->len); + mrb_value msg = mrb_str_dup(mrb, pool[GETARG_Bx(i)]); mrb_value exc; if (GETARG_A(i) == 0) { |
