summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>1999-12-27 19:07:33 +0000
committerZeev Suraski <zeev@php.net>1999-12-27 19:07:33 +0000
commitb7a5b3c309ad64ddf9d60cfd3ca21d9f25315d87 (patch)
treec251467f12cd03303f2a1a0f7b3694c7a666f08e /Zend/zend_execute.c
parent27daca31f376a323462aeff76bc1b55bab7d8841 (diff)
downloadphp-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.c8
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));