]> granicus.if.org Git - php/commitdiff
fix #35197 (Destructor is not called) and similar issues in other extensions
authorAntony Dovgal <tony2001@php.net>
Mon, 14 Nov 2005 21:52:27 +0000 (21:52 +0000)
committerAntony Dovgal <tony2001@php.net>
Mon, 14 Nov 2005 21:52:27 +0000 (21:52 +0000)
ext/dom/php_dom.c
ext/spl/spl_array.c
ext/spl/spl_iterators.c
ext/spl/spl_observer.c
ext/sqlite/sqlite.c
ext/tidy/tidy.c
ext/xmlreader/php_xmlreader.c
ext/xsl/php_xsl.c

index 58c18df620cb12c536e2fe47b7f859a3099e1115..af3ce66665b527ecf00136b16cfa703d6d5fcdd4 100644 (file)
@@ -1001,7 +1001,7 @@ zend_object_value dom_objects_new(zend_class_entry *class_type TSRMLS_DC)
        
        intern = dom_objects_set_class(class_type, 1 TSRMLS_CC);
 
-       retval.handle = zend_objects_store_put(intern, NULL, (zend_objects_free_object_storage_t)dom_objects_free_storage, dom_objects_clone TSRMLS_CC);
+       retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t)dom_objects_free_storage, dom_objects_clone TSRMLS_CC);
        intern->handle = retval.handle;
        retval.handlers = dom_get_obj_handlers(TSRMLS_C);
 
@@ -1018,7 +1018,7 @@ zend_object_value dom_xpath_objects_new(zend_class_entry *class_type TSRMLS_DC)
        
        intern = dom_objects_set_class(class_type, 1 TSRMLS_CC);
 
-       retval.handle = zend_objects_store_put(intern, NULL, (zend_objects_free_object_storage_t)dom_xpath_objects_free_storage, dom_objects_clone TSRMLS_CC);
+       retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t)dom_xpath_objects_free_storage, dom_objects_clone TSRMLS_CC);
        intern->handle = retval.handle;
        retval.handlers = dom_get_obj_handlers(TSRMLS_C);
 
index d428699f2a7324179a8453a9438b84aafee07414..c768b1028410259542b284cb70db3956ccfcbeff 100755 (executable)
@@ -146,7 +146,7 @@ static zend_object_value spl_array_object_new_ex(zend_class_entry *class_type, s
                intern->ar_flags &= ~SPL_ARRAY_IS_REF;
        }
 
-       retval.handle = zend_objects_store_put(intern, NULL, (zend_objects_free_object_storage_t) spl_array_object_free_storage, NULL TSRMLS_CC);
+       retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) spl_array_object_free_storage, NULL TSRMLS_CC);
        while (parent) {
                if (parent == U_CLASS_ENTRY(spl_ce_ArrayIterator)) {
                        retval.handlers = &spl_handler_ArrayIterator;
index c4bb5872bf6ff1006155446ca1b16e6a9365239f..298c36eaba9b2295b4ae27f487a443f98d6a470e 100755 (executable)
@@ -701,7 +701,7 @@ static zend_object_value spl_RecursiveIteratorIterator_new(zend_class_entry *cla
        zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
        zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
 
-       retval.handle = zend_objects_store_put(intern, NULL, (zend_objects_free_object_storage_t) spl_RecursiveIteratorIterator_free_storage, NULL TSRMLS_CC);
+       retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) spl_RecursiveIteratorIterator_free_storage, NULL TSRMLS_CC);
        retval.handlers = &spl_handlers_rec_it_it;
        return retval;
 }
@@ -1375,7 +1375,7 @@ static zend_object_value spl_dual_it_new(zend_class_entry *class_type TSRMLS_DC)
        zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
        zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
 
-       retval.handle = zend_objects_store_put(intern, NULL, (zend_objects_free_object_storage_t) spl_dual_it_free_storage, NULL TSRMLS_CC);
+       retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) spl_dual_it_free_storage, NULL TSRMLS_CC);
        retval.handlers = &spl_handlers_dual_it;
        return retval;
 }
index aa8e602a571c8406161e923e4a084aa60219710a..13ea1c866386648d9ca2b4673a8a0e52472d9bcb 100755 (executable)
@@ -110,7 +110,7 @@ static zend_object_value spl_object_storage_new_ex(zend_class_entry *class_type,
 
        zend_hash_init(&intern->storage, 0, NULL, ZVAL_PTR_DTOR, 0);
 
-       retval.handle = zend_objects_store_put(intern, NULL, (zend_objects_free_object_storage_t) spl_SplOjectStorage_free_storage, NULL TSRMLS_CC);
+       retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) spl_SplOjectStorage_free_storage, NULL TSRMLS_CC);
        retval.handlers = &spl_handler_SplObjectStorage;
        return retval;
 }
index 427819c1471cc3ad1c34a74f2561acad4bc1e653..5ecb0263e836a5af6fbaf862ef57ca9337c33e77 100644 (file)
@@ -831,7 +831,7 @@ static void sqlite_object_new(zend_class_entry *class_type, zend_object_handlers
        zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
        zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
 
-       retval->handle = zend_objects_store_put(intern, NULL, (zend_objects_free_object_storage_t) sqlite_object_free_storage, NULL TSRMLS_CC);
+       retval->handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) sqlite_object_free_storage, NULL TSRMLS_CC);
        retval->handlers = handlers;
 }
 
index 9b0e33bbe9d3613f9f3dd23c4b83a74cff62aa8c..24fb87f1e3f5f408b5bcbbc7f04082c506c1cafd 100644 (file)
@@ -598,7 +598,7 @@ static void tidy_object_new(zend_class_entry *class_type, zend_object_handlers *
                        break;
        }
 
-       retval->handle = zend_objects_store_put(intern, NULL, (zend_objects_free_object_storage_t) tidy_object_free_storage, NULL TSRMLS_CC);
+       retval->handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) tidy_object_free_storage, NULL TSRMLS_CC);
        retval->handlers = handlers;
 }
 
index 9a02147ce090ede01ad0e04d40e18514a50ae43d..18b9a6249efccfc015fa7305b7c823fb46c2ca57 100644 (file)
@@ -362,7 +362,7 @@ zend_object_value xmlreader_objects_new(zend_class_entry *class_type TSRMLS_DC)
        ALLOC_HASHTABLE(intern->std.properties);
        zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
        zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
-       retval.handle = zend_objects_store_put(intern, NULL, (zend_objects_free_object_storage_t) xmlreader_objects_free_storage, xmlreader_objects_clone TSRMLS_CC);
+       retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) xmlreader_objects_free_storage, xmlreader_objects_clone TSRMLS_CC);
        intern->handle = retval.handle;
        retval.handlers = &xmlreader_object_handlers;
        return retval;
index 8ea0f83053a29c30fac631718ec0ea5edb5f972a..ed29cbb382bf24f8d34558b5262e3d50e3c10ad2 100644 (file)
@@ -138,7 +138,7 @@ zend_object_value xsl_objects_new(zend_class_entry *class_type TSRMLS_DC)
        zend_hash_init(intern->parameter, 0, NULL, ZVAL_PTR_DTOR, 0);
        ALLOC_HASHTABLE(intern->registered_phpfunctions);
        zend_hash_init(intern->registered_phpfunctions, 0, NULL, ZVAL_PTR_DTOR, 0);
-       retval.handle = zend_objects_store_put(intern, NULL, (zend_objects_free_object_storage_t) xsl_objects_free_storage, NULL TSRMLS_CC);
+       retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) xsl_objects_free_storage, NULL TSRMLS_CC);
        intern->handle = retval.handle;
        retval.handlers = &xsl_object_handlers;
        return retval;