summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_execute.h
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2015-07-09 23:20:50 +0300
committerDmitry Stogov <dmitry@zend.com>2015-07-09 23:20:50 +0300
commit8c3f701eebfa92d761bb368cfa8c2d1ccf821b9d (patch)
tree27b4b3a7e25b4f8785ff5205ea7c3c91ebe16330 /Zend/zend_vm_execute.h
parent788c4c852d0b0523eb918039e4ac3247f5c8a6d0 (diff)
downloadphp-git-8c3f701eebfa92d761bb368cfa8c2d1ccf821b9d.tar.gz
Fixed exception catching on break/continue
Fixed "finaly" handling on exception in "return" statement
Diffstat (limited to 'Zend/zend_vm_execute.h')
-rw-r--r--Zend/zend_vm_execute.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index bdfce50cf1..95c1b5dfaa 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -1500,12 +1500,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(
}
}
- if (catch_op_num || finally_op_num) {
+ if (catch_op_num) {
if (EX(func)->op_array.opcodes[op_num].opcode == ZEND_VERIFY_RETURN_TYPE
- || (EX(func)->op_array.opcodes[op_num].opcode == ZEND_FREE && (EX(func)->op_array.opcodes[op_num].extended_value & ZEND_FREE_ON_JUMP))
- || (EX(func)->op_array.opcodes[op_num].opcode == ZEND_FE_FREE && (EX(func)->op_array.opcodes[op_num].extended_value & ZEND_FREE_ON_JUMP))
+ || (EX(func)->op_array.opcodes[op_num].opcode == ZEND_FREE && (EX(func)->op_array.opcodes[op_num].extended_value & ZEND_FREE_ON_RETURN))
+ || (EX(func)->op_array.opcodes[op_num].opcode == ZEND_FE_FREE && (EX(func)->op_array.opcodes[op_num].extended_value & ZEND_FREE_ON_RETURN))
) {
- catch_op_num = finally_op_num = 0;
+ catch_op_num = 0;
}
}