summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2012-05-04 05:23:34 -0700
committerYukihiro "Matz" Matsumoto <[email protected]>2012-05-04 05:23:34 -0700
commit91a90540737ddc233d0c68dea05d779fafc32e8e (patch)
tree3d25b6daa9a5f7194dd94c07438891b95cf6e544
parentf255d33b4f0e82f3d6ee86f38101209a01d454cb (diff)
parent7e1df10517f7d9163b0e20c17961b82754de2907 (diff)
downloadmruby-91a90540737ddc233d0c68dea05d779fafc32e8e.tar.gz
mruby-91a90540737ddc233d0c68dea05d779fafc32e8e.zip
Merge pull request #96 from k-tsj/fix-return-segv
Fix SEGV when returning from terminated method
-rw-r--r--src/vm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/vm.c b/src/vm.c
index f7e83c79a..f2f59cfbb 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -992,6 +992,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
case OP_R_RETURN:
if (proc->env->cioff < 0) {
localjump_error(mrb, "return");
+ goto L_RAISE;
}
ci = mrb->ci = mrb->cibase + proc->env->cioff;
break;