diff options
| author | Zeev Suraski <zeev@php.net> | 1999-12-27 19:07:33 +0000 |
|---|---|---|
| committer | Zeev Suraski <zeev@php.net> | 1999-12-27 19:07:33 +0000 |
| commit | b7a5b3c309ad64ddf9d60cfd3ca21d9f25315d87 (patch) | |
| tree | c251467f12cd03303f2a1a0f7b3694c7a666f08e /Zend/zend_execute.c | |
| parent | 27daca31f376a323462aeff76bc1b55bab7d8841 (diff) | |
| download | php-git-b7a5b3c309ad64ddf9d60cfd3ca21d9f25315d87.tar.gz | |
- Generalize the fast cache mechanism
- Add the HashTable struct to the fast cache mechanism
Diffstat (limited to 'Zend/zend_execute.c')
| -rw-r--r-- | Zend/zend_execute.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index eb23e33826..2087252d17 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -30,7 +30,7 @@ #include "zend_operators.h" #include "zend_constants.h" #include "zend_extensions.h" -#include "zend_zval_alloc.h" +#include "zend_fast_cache.h" #if defined(HAVE_ALLOCA) && defined(HAVE_ALLOCA_H) # include <alloca.h> @@ -481,7 +481,7 @@ static inline void zend_fetch_var_address(znode *result, znode *op1, znode *op2, break; case ZEND_FETCH_STATIC: if (!EG(active_op_array)->static_variables) { - EG(active_op_array)->static_variables = (HashTable *) emalloc(sizeof(HashTable)); + ALLOC_HASHTABLE(EG(active_op_array)->static_variables); zend_hash_init(EG(active_op_array)->static_variables, 2, NULL, ZVAL_PTR_DTOR, 0); } target_symbol_table = EG(active_op_array)->static_variables; @@ -1526,7 +1526,7 @@ do_fcall_common: /*printf("Cache hit! Reusing %x\n", symtable_cache[symtable_cache_ptr]);*/ function_state.function_symbol_table = *(EG(symtable_cache_ptr)--); } else { - function_state.function_symbol_table = (HashTable *) emalloc(sizeof(HashTable)); + ALLOC_HASHTABLE(function_state.function_symbol_table); zend_hash_init(function_state.function_symbol_table, 0, NULL, ZVAL_PTR_DTOR, 0); /*printf("Cache miss! Initialized %x\n", function_state.function_symbol_table);*/ } @@ -1561,7 +1561,7 @@ do_fcall_common: EG(return_value_ptr_ptr)=original_return_value; if (EG(symtable_cache_ptr)>=EG(symtable_cache_limit)) { zend_hash_destroy(function_state.function_symbol_table); - efree(function_state.function_symbol_table); + FREE_HASHTABLE(function_state.function_symbol_table); } else { *(++EG(symtable_cache_ptr)) = function_state.function_symbol_table; zend_hash_clean(*EG(symtable_cache_ptr)); |
