]> granicus.if.org Git - php/commitdiff
Some cleanup
authorZeev Suraski <zeev@php.net>
Thu, 2 Aug 2001 06:16:20 +0000 (06:16 +0000)
committerZeev Suraski <zeev@php.net>
Thu, 2 Aug 2001 06:16:20 +0000 (06:16 +0000)
Zend/zend.c
Zend/zend_execute_API.c
Zend/zend_hash.c
Zend/zend_hash.h
Zend/zend_list.c
Zend/zend_list.h

index a44c9bfd7b6214458d79b810e611e8bc6c882bbb..70e87b043e025858ee145f947907a2971db25373 100644 (file)
@@ -315,7 +315,7 @@ static void executor_globals_ctor(zend_executor_globals *executor_globals TSRMLS
 static void executor_globals_dtor(zend_executor_globals *executor_globals TSRMLS_DC)
 {
        zend_shutdown_constants(TSRMLS_C);
-       zend_destroy_rsrc_plist(TSRMLS_C);
+       zend_destroy_rsrc_list(&EG(persistent_list) TSRMLS_CC);
        zend_ini_shutdown(TSRMLS_C);
 }
 
@@ -437,7 +437,7 @@ void zend_shutdown(TSRMLS_D)
        zend_shutdown_timeout_thread();
 #endif
 #ifndef ZTS
-       zend_destroy_rsrc_plist();
+       zend_destroy_rsrc_list(&EG(persistent_list) TSRMLS_CC);
 #endif
        zend_destroy_rsrc_list_dtors();
        zend_hash_destroy(&module_registry);
index cf15349fec1eda3be797552ea5b1acb7d48bbb3c..6ee4fd963495877117568ce642a7574baba58c11 100644 (file)
@@ -177,9 +177,10 @@ void shutdown_executor(TSRMLS_D)
                zend_hash_apply(EG(class_table), (apply_func_t) is_not_internal_class TSRMLS_CC);
        } zend_end_try();
 
-       zend_destroy_rsrc_list(TSRMLS_C); /* must be destroyed after the main symbol table and
-                                                                       * op arrays are destroyed.
-                                                                       */
+       /* The regular list must be destroyed after the main symbol table and
+        * op arrays are destroyed.
+        */
+       zend_destroy_rsrc_list(&EG(regular_list) TSRMLS_CC);
 
        zend_try {
                clean_non_persistent_constants(TSRMLS_C);
index 437190e001e98f3c0c83a464ad154c086879fc7b..5ccebd8faf35236efc2cc1b6f1e6179a6f809672 100644 (file)
@@ -524,32 +524,6 @@ ZEND_API int zend_hash_del_key_or_index(HashTable *ht, char *arKey, uint nKeyLen
        return FAILURE;
 }
 
-ZEND_API void zend_hash_reverse_destroy(HashTable *ht)
-{
-       Bucket *p, *q;
-
-       while (1) {
-               p = ht->pListTail;
-               if (!p) {
-                       break;
-               }
-               q = p->pListLast;
-               if (q) {
-                       q->pListNext = NULL;
-               }
-               ht->pListTail = q;
-
-               if (ht->pDestructor) {
-                       ht->pDestructor(p->pData);
-               }
-               if (!p->pDataPtr && p->pData) {
-                       pefree(p->pData, ht->persistent);
-               }
-               pefree(p, ht->persistent);
-       }
-       pefree(ht->arBuckets, ht->persistent);
-}
-
 
 ZEND_API void zend_hash_destroy(HashTable *ht)
 {
index c1d593f76e5366e15b2115ac3b9bf03f909d6803..72eecb47486ff12a78076e1996fe26bf8b5d932a 100644 (file)
@@ -37,8 +37,6 @@ typedef ulong (*hash_func_t)(char *arKey, uint nKeyLength);
 typedef int  (*compare_func_t)(const void *, const void *);
 typedef void (*sort_func_t)(void *, size_t, register size_t, compare_func_t);
 typedef void (*dtor_func_t)(void *pDest);
-typedef int (*apply_func_t)(void *pDest TSRMLS_DC);
-typedef int (*apply_func_arg_t)(void *pDest, void *argument TSRMLS_DC);
 typedef void (*copy_ctor_func_t)(void *pElement);
 
 struct _hashtable;
@@ -81,8 +79,6 @@ BEGIN_EXTERN_C()
 ZEND_API int zend_hash_init(HashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, int persistent);
 ZEND_API int zend_hash_init_ex(HashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, int persistent, zend_bool bApplyProtection);
 ZEND_API void zend_hash_destroy(HashTable *ht);
-ZEND_API void zend_hash_reverse_destroy(HashTable *ht);
-
 ZEND_API void zend_hash_clean(HashTable *ht);
 
 /* additions/updates/changes */
@@ -113,6 +109,8 @@ typedef struct _zend_hash_key {
 } zend_hash_key;
 
 
+typedef int (*apply_func_t)(void *pDest TSRMLS_DC);
+typedef int (*apply_func_arg_t)(void *pDest, void *argument TSRMLS_DC);
 typedef int (*apply_func_args_t)(void *pDest, int num_args, va_list args, zend_hash_key *hash_key);
 
 ZEND_API void zend_hash_graceful_destroy(HashTable *ht);
index 6f868715da02deccdd987f5c2d65f6fc7acf9da1..dc61aa327204800d02fce3ae36da13a6e90be33c 100644 (file)
@@ -228,10 +228,9 @@ int zend_init_rsrc_plist(TSRMLS_D)
 }
 
 
-void zend_destroy_rsrc_list(TSRMLS_D)
+void zend_destroy_rsrc_list(HashTable *ht TSRMLS_DC)
 {
        Bucket *p, *q;
-       HashTable *ht = &EG(regular_list);
 
        while (1) {
                p = ht->pListTail;
@@ -258,13 +257,6 @@ void zend_destroy_rsrc_list(TSRMLS_D)
 }
 
 
-
-void zend_destroy_rsrc_plist(TSRMLS_D)
-{
-       zend_hash_reverse_destroy(&EG(persistent_list));
-}
-
-
 static int clean_module_resource(zend_rsrc_list_entry *le, int *resource_id TSRMLS_DC)
 {
        if (le->type == *resource_id) {
index c17d2c5ff582b890ae527ebab17d6d79128b4437..6150a42efe6afbe351d188718b7669c5fac7458d 100644 (file)
@@ -68,8 +68,7 @@ void plist_entry_destructor(void *ptr);
 void zend_clean_module_rsrc_dtors(int module_number TSRMLS_DC);
 int zend_init_rsrc_list(TSRMLS_D);
 int zend_init_rsrc_plist(TSRMLS_D);
-void zend_destroy_rsrc_list(TSRMLS_D);
-void zend_destroy_rsrc_plist(TSRMLS_D);
+void zend_destroy_rsrc_list(HashTable *ht TSRMLS_DC);
 int zend_init_rsrc_list_dtors(void);
 void zend_destroy_rsrc_list_dtors(void);