diff options
Diffstat (limited to 'Zend/zend_execute_API.c')
| -rw-r--r-- | Zend/zend_execute_API.c | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 2d6cc38d92..8faba97fc7 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -156,7 +156,7 @@ void init_executor(TSRMLS_D) /* {{{ */ ZVAL_LONG(&tmp, 0); zend_vm_stack_push(&tmp TSRMLS_CC); - zend_hash_init(&EG(symbol_table).ht, 50, NULL, ZVAL_INDIRECT_PTR_DTOR, 0); + zend_hash_init(&EG(symbol_table).ht, 50, NULL, ZVAL_PTR_DTOR, 0); EG(active_symbol_table) = &EG(symbol_table).ht; zend_llist_apply(&zend_extensions, (llist_apply_func_t) zend_extension_activator TSRMLS_CC); @@ -426,16 +426,6 @@ ZEND_API void _zval_ptr_dtor(zval *zval_ptr ZEND_FILE_LINE_DC) /* {{{ */ } /* }}} */ -ZEND_API void zval_indirect_ptr_dtor(zval *zval_ptr) /* {{{ */ -{ - if (Z_TYPE_P(zval_ptr) == IS_INDIRECT) { - zval_ptr = Z_INDIRECT_P(zval_ptr); - } - zval_ptr_dtor(zval_ptr); -} - -/* }}} */ - ZEND_API void _zval_internal_ptr_dtor(zval *zval_ptr ZEND_FILE_LINE_DC) /* {{{ */ { if (Z_REFCOUNTED_P(zval_ptr)) { @@ -1726,7 +1716,7 @@ ZEND_API void zend_rebuild_symbol_table(TSRMLS_D) /* {{{ */ EG(active_symbol_table) = *(EG(symtable_cache_ptr)--); } else { ALLOC_HASHTABLE(EG(active_symbol_table)); - zend_hash_init(EG(active_symbol_table), ex->op_array->last_var, NULL, ZVAL_INDIRECT_PTR_DTOR, 0); + zend_hash_init(EG(active_symbol_table), ex->op_array->last_var, NULL, ZVAL_PTR_DTOR, 0); /*printf("Cache miss! Initialized %x\n", EG(active_symbol_table));*/ } ex->symbol_table = EG(active_symbol_table); @@ -1738,9 +1728,10 @@ ZEND_API void zend_rebuild_symbol_table(TSRMLS_D) /* {{{ */ } for (i = 0; i < ex->op_array->last_var; i++) { if (Z_TYPE_P(EX_VAR_NUM_2(ex, i)) != IS_UNDEF) { - zval zv; - ZVAL_INDIRECT(&zv, EX_VAR_NUM_2(ex, i)); - zend_hash_update(EG(active_symbol_table), ex->op_array->vars[i], &zv); + zval *zv = zend_hash_update(EG(active_symbol_table), + ex->op_array->vars[i], + EX_VAR_NUM_2(ex, i)); + ZVAL_INDIRECT(EX_VAR_NUM_2(ex, i), zv); } } } |
