summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/vm.c3
-rw-r--r--tools/mruby/mruby.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/src/vm.c b/src/vm.c
index 953863a0b..fe359be47 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -169,6 +169,9 @@ cipush(mrb_state *mrb)
mrb->ci->eidx = eidx;
mrb->ci->ridx = ridx;
mrb->ci->env = 0;
+ if (mrb->ci + 1 != mrb->ciend) {
+ mrb->ci[1].mid = 0;
+ }
return mrb->ci;
}
diff --git a/tools/mruby/mruby.c b/tools/mruby/mruby.c
index 94fddf4c7..2037ee2a8 100644
--- a/tools/mruby/mruby.c
+++ b/tools/mruby/mruby.c
@@ -170,9 +170,9 @@ showcallinfo(mrb_state *mrb)
int i;
printf("trace:\n");
- for (i = 0; &mrb->cibase[i] < mrb->ciend; i++) {
+ for (i = 1; &mrb->cibase[i] < mrb->ciend; i++) {
ci = &mrb->cibase[i];
- if (ci->target_class == NULL)
+ if (ci->mid == 0)
break;
if (MRB_PROC_CFUNC_P(ci->proc))