summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2015-10-20 08:12:04 -0700
committerAnatol Belski <ab@php.net>2015-10-23 11:38:13 +0200
commit64c52c805f1e9745488c6c787af5f0fc3753f375 (patch)
treeb084b9c49c538133b4a125158f615c10996aac15
parentbbabab1cdc2915156bdcbae890d5fb10d2e0fa94 (diff)
downloadphp-git-64c52c805f1e9745488c6c787af5f0fc3753f375.tar.gz
Revert "Ensure proper exception handling and EX(opline) state in USER_OPCODE handler"
read: http://news.php.net/php.internals/88887 This reverts commit 808f62bb4d9812e9b7b35c87f3e90e5fc2bc244b.
-rw-r--r--Zend/zend_vm_def.h8
-rw-r--r--Zend/zend_vm_execute.h8
2 files changed, 2 insertions, 14 deletions
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index f9739445f5..0af6500b6a 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -7176,14 +7176,10 @@ ZEND_VM_HANDLER(150, ZEND_USER_OPCODE, ANY, ANY)
SAVE_OPLINE();
ret = zend_user_opcode_handlers[opline->opcode](execute_data);
-
- if (EG(exception)) {
- HANDLE_EXCEPTION();
- }
+ LOAD_OPLINE();
switch (ret) {
case ZEND_USER_OPCODE_CONTINUE:
- LOAD_OPLINE();
ZEND_VM_CONTINUE();
case ZEND_USER_OPCODE_RETURN:
if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_GENERATOR) != 0)) {
@@ -7199,10 +7195,8 @@ ZEND_VM_HANDLER(150, ZEND_USER_OPCODE, ANY, ANY)
LOAD_OPLINE();
ZEND_VM_LEAVE();
case ZEND_USER_OPCODE_DISPATCH:
- ZEND_ASSERT(EX(opline) == opline);
ZEND_VM_DISPATCH(opline->opcode, opline);
default:
- ZEND_ASSERT(EX(opline) == opline);
ZEND_VM_DISPATCH((zend_uchar)(ret & 0xff), opline);
}
}
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index 728fc49c8f..cd5df3e61c 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -1566,14 +1566,10 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_USER_OPCODE_SPEC_HANDLER(ZEND_
SAVE_OPLINE();
ret = zend_user_opcode_handlers[opline->opcode](execute_data);
-
- if (EG(exception)) {
- HANDLE_EXCEPTION();
- }
+ LOAD_OPLINE();
switch (ret) {
case ZEND_USER_OPCODE_CONTINUE:
- LOAD_OPLINE();
ZEND_VM_CONTINUE();
case ZEND_USER_OPCODE_RETURN:
if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_GENERATOR) != 0)) {
@@ -1589,10 +1585,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_USER_OPCODE_SPEC_HANDLER(ZEND_
LOAD_OPLINE();
ZEND_VM_LEAVE();
case ZEND_USER_OPCODE_DISPATCH:
- ZEND_ASSERT(EX(opline) == opline);
ZEND_VM_DISPATCH(opline->opcode, opline);
default:
- ZEND_ASSERT(EX(opline) == opline);
ZEND_VM_DISPATCH((zend_uchar)(ret & 0xff), opline);
}
}