Browse Source

- Second wave of garbage removal.

PHP-5.1
Andi Gutmans 22 years ago
parent
commit
57ba9b8ccf
  1. 16
      Zend/zend.c
  2. 18
      Zend/zend_execute_API.c
  3. 6
      Zend/zend_globals.h

16
Zend/zend.c

@ -879,8 +879,6 @@ ZEND_API void zend_error(int type, const char *format, ...)
char *error_filename;
uint error_lineno;
zval *orig_user_error_handler;
zval *orig_garbage[2];
int orig_garbage_ptr;
TSRMLS_FETCH();
/* Obtain relevant filename and lineno */
@ -973,12 +971,6 @@ ZEND_API void zend_error(int type, const char *format, ...)
orig_user_error_handler = EG(user_error_handler);
EG(user_error_handler) = NULL;
orig_garbage_ptr = EG(garbage_ptr);
EG(garbage_ptr) = 0;
if (orig_garbage_ptr > 0) {
memcpy(&orig_garbage, &EG(garbage), sizeof(zval*)*orig_garbage_ptr);
}
if (call_user_function_ex(CG(function_table), NULL, orig_user_error_handler, &retval, 5, params, 1, NULL TSRMLS_CC)==SUCCESS) {
if (retval) {
if (Z_TYPE_P(retval) == IS_BOOL && Z_LVAL_P(retval) == 0) {
@ -991,14 +983,6 @@ ZEND_API void zend_error(int type, const char *format, ...)
zend_error_cb(type, error_filename, error_lineno, format, args);
}
if (orig_garbage_ptr > 0) {
while (EG(garbage_ptr)) {
zval_ptr_dtor(&EG(garbage)[--EG(garbage_ptr)]);
}
EG(garbage_ptr) = orig_garbage_ptr;
memcpy(&EG(garbage), &orig_garbage, sizeof(zval*)*orig_garbage_ptr);
}
EG(user_error_handler) = orig_user_error_handler;
efree(params);

18
Zend/zend_execute_API.c

@ -157,7 +157,6 @@ void init_executor(TSRMLS_D)
zend_llist_apply(&zend_extensions, (llist_apply_func_t) zend_extension_activator TSRMLS_CC);
EG(opline_ptr) = NULL;
EG(garbage_ptr) = 0;
zend_hash_init(&EG(included_files), 5, NULL, NULL, 0);
@ -252,12 +251,6 @@ void shutdown_executor(TSRMLS_D)
zend_hash_apply(EG(function_table), (apply_func_t) zend_cleanup_function_data TSRMLS_CC);
zend_hash_apply(EG(class_table), (apply_func_t) zend_cleanup_class_data TSRMLS_CC);
while (EG(garbage_ptr)) {
if (EG(garbage)[--EG(garbage_ptr)]->refcount==1) {
zval_ptr_dtor(&EG(garbage)[EG(garbage_ptr)]);
}
}
zend_ptr_stack_destroy(&EG(argument_stack));
/* Destroy all op arrays */
@ -571,9 +564,6 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
zend_function_state *original_function_state_ptr;
zend_op_array *original_op_array;
zend_op **original_opline_ptr;
zval *orig_free_op1, *orig_free_op2;
int (*orig_unary_op)(zval *result, zval *op1);
int (*orig_binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC);
zend_class_entry *current_scope;
zend_class_entry *calling_scope = NULL;
zval *current_this;
@ -840,10 +830,6 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
EG(return_value_ptr_ptr) = fci->retval_ptr_ptr;
EG(active_op_array) = (zend_op_array *) EX(function_state).function;
original_opline_ptr = EG(opline_ptr);
orig_free_op1 = EG(free_op1);
orig_free_op2 = EG(free_op2);
orig_unary_op = EG(unary_op);
orig_binary_op = EG(binary_op);
zend_execute(EG(active_op_array) TSRMLS_CC);
if (!fci->symbol_table) {
zend_hash_destroy(EG(active_symbol_table));
@ -853,10 +839,6 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
EG(active_op_array) = original_op_array;
EG(return_value_ptr_ptr)=original_return_value;
EG(opline_ptr) = original_opline_ptr;
EG(free_op1) = orig_free_op1;
EG(free_op2) = orig_free_op2;
EG(unary_op) = orig_unary_op;
EG(binary_op) = orig_binary_op;
} else {
ALLOC_INIT_ZVAL(*fci->retval_ptr_ptr);
if (EX(function_state).function->common.scope) {

6
Zend/zend_globals.h

@ -207,12 +207,6 @@ struct _zend_executor_globals {
HashTable persistent_list;
zend_ptr_stack argument_stack;
zval *free_op1, *free_op2;
int (*unary_op)(zval *result, zval *op1);
int (*binary_op)(zval *result, zval *op1, zval *op2 TSRMLS_DC);
zval *garbage[2];
int garbage_ptr;
int user_error_handler_error_reporting;
zval *user_error_handler;

Loading…
Cancel
Save