From be5564a178ee453b7d6fedc7c312bec01e29dde2 Mon Sep 17 00:00:00 2001
From: ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
Date: Tue, 26 Jul 2016 10:28:21 +0000
Subject: * vm_insnhelper.c: introduce rb_vm_pop_frame() and use it   instead
 of setting rb_thread_t::cfp directly.

* vm_insnhelper.c (vm_pop_frame): return the result of
  finish frame or not.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55755 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
---
 insns.def | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

(limited to 'insns.def')

diff --git a/insns.def b/insns.def
index c9d7204b42..7da7f891ff 100644
--- a/insns.def
+++ b/insns.def
@@ -1128,9 +1128,7 @@ leave
 
     RUBY_VM_CHECK_INTS(th);
 
-    if (UNLIKELY(VM_FRAME_TYPE_FINISH_P(GET_CFP()))) {
-	vm_pop_frame(th);
-
+    if (vm_pop_frame(th, GET_CFP(), GET_EP())) {
 #if OPT_CALL_THREADED_CODE
 	th->retval = val;
 	return 0;
@@ -1139,7 +1137,6 @@ leave
 #endif
     }
     else {
-	vm_pop_frame(th);
 	RESTORE_REGS();
     }
 }
-- 
cgit v1.2.3

