static zend_object_handlers xmlwriter_object_handlers;
- /* {{{ xmlwriter_object_free_storage */
- static void xmlwriter_object_free_storage(zend_object *object)
+ /* {{{{ xmlwriter_object_dtor */
+ static void xmlwriter_object_dtor(zend_object *object)
{
ze_xmlwriter_object *intern = php_xmlwriter_fetch_object(object);
- if (!intern) {
- return;
- }
+
+ /* freeing the resource here may leak, but otherwise we may use it after it has been freed */
- if (intern->xmlwriter_ptr) {
- xmlwriter_free_resource_ptr(intern->xmlwriter_ptr);
+ if (intern->ptr) {
+ xmlFreeTextWriter(intern->ptr);
+ intern->ptr = NULL;
+ }
+ if (intern->output) {
+ xmlBufferFree(intern->output);
+ intern->output = NULL;
}
- intern->xmlwriter_ptr = NULL;
+ zend_objects_destroy_object(object);
+ }
+ /* }}} */
+
+ /* {{{ xmlwriter_object_free_storage */
+ static void xmlwriter_object_free_storage(zend_object *object)
+ {
+ ze_xmlwriter_object *intern = php_xmlwriter_fetch_object(object);
+
zend_object_std_dtor(&intern->std);
}
/* }}} */