]> granicus.if.org Git - php/commitdiff
MFH: fix #35197 (Destructor is not called) and similar issues in other extensions
authorAntony Dovgal <tony2001@php.net>
Mon, 14 Nov 2005 22:03:02 +0000 (22:03 +0000)
committerAntony Dovgal <tony2001@php.net>
Mon, 14 Nov 2005 22:03:02 +0000 (22:03 +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 e9f04d5a4642051d135642da60bca93491f76fd5..24e3469e3b7726df5a898ca5d0863f1a018bc215 100644 (file)
@@ -994,7 +994,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);
 
@@ -1011,7 +1011,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 d3d870d7d32f86bc0166af1c2e67f3ca37d8587c..aa76b06b761dbb01438512fb8a3bdefc683fd29d 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 == spl_ce_ArrayIterator) {
                        retval.handlers = &spl_handler_ArrayIterator;
index 3441aa7ddfc862d5c809f9fea1d3266dda7d09f3..f13ad493ab1d1232b116623cf606ed4e6256690e 100755 (executable)
@@ -687,7 +687,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;
 }
@@ -1265,7 +1265,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 7945c02b032e0229e692f7413a4fb09db4c6b9e3..243ade6573600ca2873e9ace8fb632c38bb3d411 100644 (file)
@@ -830,7 +830,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 326996b32f3a6f7ebe6a8f2d0673e4b5b383db6c..89a7132e867a72ce8b64623bd99e69c007a4071b 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 36754f40ca7805904cca4d329d3a0e01c37b003a..77eababaeb2b69ad59d84c8857a998c28a1f3ae0 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;