summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2008-01-21 19:39:55 +0000
committerDmitry Stogov <dmitry@php.net>2008-01-21 19:39:55 +0000
commitfa47e900e28fe5dd2c408288a7d43d48cf2706fa (patch)
treeed8f9a5529c4d215884758064d69364fd7238f91 /Zend/zend_execute.c
parent7390459e2664346c17d10c2347a0f3b766b6ab83 (diff)
downloadphp-git-fa47e900e28fe5dd2c408288a7d43d48cf2706fa.tar.gz
Changed exception handling. Now each op_array doesn't contain ZEND_HANDLE_EXCEPTION opcode in the end
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r--Zend/zend_execute.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index f0283731db..08ba4fa63e 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1446,15 +1446,14 @@ ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, int return_v
EX(opline) = new_op
#define ZEND_VM_JMP(new_op) \
- CHECK_SYMBOL_TABLES() \
- EX(opline) = EG(exception)?EX(opline)+1:new_op; \
- ZEND_VM_CONTINUE()
+ CHECK_SYMBOL_TABLES() \
+ if (EXPECTED(!EG(exception))) { \
+ EX(opline) = new_op; \
+ } \
+ ZEND_VM_CONTINUE()
#define ZEND_VM_INC_OPCODE() \
- if (!EG(exception)) { \
- CHECK_SYMBOL_TABLES() \
- EX(opline)++; \
- }
+ EX(opline)++
#define ZEND_VM_EXIT_FROM_EXECUTE_LOOP() \
free_alloca(EX(CVs), EX(use_heap)); \