diff options
author | Dmitry Stogov <dmitry@php.net> | 2008-01-21 19:39:55 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2008-01-21 19:39:55 +0000 |
commit | fa47e900e28fe5dd2c408288a7d43d48cf2706fa (patch) | |
tree | ed8f9a5529c4d215884758064d69364fd7238f91 /Zend/zend_execute.c | |
parent | 7390459e2664346c17d10c2347a0f3b766b6ab83 (diff) | |
download | php-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.c | 13 |
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)); \ |