summaryrefslogtreecommitdiff
path: root/Zend/zend_constants.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2006-03-13 11:13:42 +0000
committerDmitry Stogov <dmitry@php.net>2006-03-13 11:13:42 +0000
commitad10a538eefa240da0287fe96a7852ab89cb7911 (patch)
treee9e855469d5b071e419b15e7112c1c1b257e11b0 /Zend/zend_constants.c
parentd21669fc807a85aba09e4ebec0591f38a0d1674b (diff)
downloadphp-git-ad10a538eefa240da0287fe96a7852ab89cb7911.tar.gz
Optimized cleanup loops on request shutdown
Diffstat (limited to 'Zend/zend_constants.c')
-rw-r--r--Zend/zend_constants.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c
index b144f0102e..10dbe360b3 100644
--- a/Zend/zend_constants.c
+++ b/Zend/zend_constants.c
@@ -55,11 +55,13 @@ void zend_copy_constants(HashTable *target, HashTable *source)
static int clean_non_persistent_constant(zend_constant *c TSRMLS_DC)
{
- if (c->flags & CONST_PERSISTENT) {
- return EG(full_tables_cleanup) ? 0 : ZEND_HASH_APPLY_STOP;
- } else {
- return EG(full_tables_cleanup) ? 1 : ZEND_HASH_APPLY_REMOVE;
- }
+ return (c->flags & CONST_PERSISTENT) ? ZEND_HASH_APPLY_STOP : ZEND_HASH_APPLY_REMOVE;
+}
+
+
+static int clean_non_persistent_constant_full(zend_constant *c TSRMLS_DC)
+{
+ return (c->flags & CONST_PERSISTENT) ? ZEND_HASH_APPLY_KEEP : ZEND_HASH_APPLY_REMOVE;
}
@@ -153,7 +155,7 @@ int zend_shutdown_constants(TSRMLS_D)
void clean_non_persistent_constants(TSRMLS_D)
{
if (EG(full_tables_cleanup)) {
- zend_hash_apply(EG(zend_constants), (apply_func_t) clean_non_persistent_constant TSRMLS_CC);
+ zend_hash_apply(EG(zend_constants), (apply_func_t) clean_non_persistent_constant_full TSRMLS_CC);
} else {
zend_hash_reverse_apply(EG(zend_constants), (apply_func_t) clean_non_persistent_constant TSRMLS_CC);
}