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));  | 
