diff options
author | Dmitry Stogov <dmitry@php.net> | 2007-11-21 12:28:13 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2007-11-21 12:28:13 +0000 |
commit | e0ae3d22c1e8bd3ba12d4c1b40b6942a7cba5317 (patch) | |
tree | ca5a91e64df08605e3778791b4ddd57cb1863636 /Zend/zend_execute.c | |
parent | 685e5d064a4b6efd65e9c71ad989ac65a33da7c5 (diff) | |
download | php-git-e0ae3d22c1e8bd3ba12d4c1b40b6942a7cba5317.tar.gz |
Safe exit from executor()
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r-- | Zend/zend_execute.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 8f1e0f0e46..797fbe8446 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1426,7 +1426,7 @@ ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, int return_v EX(opline)++; \ } -#define ZEND_VM_RETURN_FROM_EXECUTE_LOOP() \ +#define ZEND_VM_EXIT_FROM_EXECUTE_LOOP() \ free_alloca(EX(CVs)); \ if (EX(op_array)->T < TEMP_VAR_STACK_LIMIT) { \ free_alloca(EX(Ts)); \ @@ -1435,7 +1435,10 @@ ZEND_API void execute_internal(zend_execute_data *execute_data_ptr, int return_v } \ EG(in_execution) = EX(original_in_execution); \ EG(current_execute_data) = EX(prev_execute_data); \ - EG(opline_ptr) = NULL; \ + EG(opline_ptr) = NULL; + +#define ZEND_VM_RETURN_FROM_EXECUTE_LOOP() \ + ZEND_VM_EXIT_FROM_EXECUTE_LOOP() \ ZEND_VM_RETURN() #include "zend_vm_execute.h" |