summaryrefslogtreecommitdiff
path: root/Zend/zend_execute_API.c
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2014-04-30 20:28:02 +0200
committerNikita Popov <nikic@php.net>2014-05-01 09:08:29 +0200
commit5a03efe2790cc935d4d8ca723bd21ce8c079fbd4 (patch)
treed378f9fb31ab2bce4f70211df94b4403db55d5ca /Zend/zend_execute_API.c
parent257bf697ae9b2ae366f7f3726019c18ad92b9002 (diff)
downloadphp-git-5a03efe2790cc935d4d8ca723bd21ce8c079fbd4.tar.gz
Don't allocate zend_stack elements individually
Instead allocate a vector of elements. Size must now be specified on initialization rather than on push.
Diffstat (limited to 'Zend/zend_execute_API.c')
-rw-r--r--Zend/zend_execute_API.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index 7041563704..ff52993ca0 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -174,9 +174,9 @@ void init_executor(TSRMLS_D) /* {{{ */
EG(current_execute_data) = NULL;
- zend_stack_init(&EG(user_error_handlers_error_reporting));
- zend_stack_init(&EG(user_error_handlers));
- zend_stack_init(&EG(user_exception_handlers));
+ zend_stack_init(&EG(user_error_handlers_error_reporting), sizeof(int));
+ zend_stack_init(&EG(user_error_handlers), sizeof(zval));
+ zend_stack_init(&EG(user_exception_handlers), sizeof(zval));
zend_objects_store_init(&EG(objects_store), 1024);
@@ -289,8 +289,7 @@ void shutdown_executor(TSRMLS_D) /* {{{ */
ZVAL_UNDEF(&EG(user_exception_handler));
}
- zend_stack_destroy(&EG(user_error_handlers_error_reporting));
- zend_stack_init(&EG(user_error_handlers_error_reporting));
+ zend_stack_clean(&EG(user_error_handlers_error_reporting), NULL, 1);
zend_stack_clean(&EG(user_error_handlers), (void (*)(void *))ZVAL_DESTRUCTOR, 1);
zend_stack_clean(&EG(user_exception_handlers), (void (*)(void *))ZVAL_DESTRUCTOR, 1);
} zend_end_try();