diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-09-10 20:36:03 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-09-10 20:36:03 +0900 |
| commit | b0f3c28caafa7a3993b826ea69973f3b8bdc8dca (patch) | |
| tree | 7c9029881381d3b86d4b530d04580af8bb32230f | |
| parent | fd252fecf4f20284dddfcd7d5b9f019ceefef16d (diff) | |
| download | mruby-b0f3c28caafa7a3993b826ea69973f3b8bdc8dca.tar.gz mruby-b0f3c28caafa7a3993b826ea69973f3b8bdc8dca.zip | |
simplify array generation from mrb_run
| -rw-r--r-- | src/vm.c | 9 |
1 files changed, 1 insertions, 8 deletions
@@ -1525,14 +1525,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) CASE(OP_ARRAY) { /* A B C R(A) := ary_new(R(B),R(B+1)..R(B+C)) */ - int b = GETARG_B(i); - int lim = b+GETARG_C(i); - mrb_value ary = mrb_ary_new_capa(mrb, GETARG_C(i)); - - while (b < lim) { - mrb_ary_push(mrb, ary, regs[b++]); - } - regs[GETARG_A(i)] = ary; + regs[GETARG_A(i)] = mrb_ary_new_from_values(mrb, GETARG_C(i), ®s[GETARG_B(i)]); mrb->arena_idx = ai; NEXT; } |
