/* {{{ xsl_objects_dtor */
void xsl_objects_dtor(void *object, zend_object_handle handle TSRMLS_DC)
{
- /* TODO */
xsl_object *intern = (xsl_object *)object;
zend_hash_destroy(intern->std.properties);
if (((xsltStylesheetPtr) intern->ptr)->_private != NULL) {
((xsltStylesheetPtr) intern->ptr)->_private = NULL;
}
- if (intern->document != NULL) {
- if (--intern->document->refcount == 0) {
- xmlFreeDoc((xmlDocPtr) intern->document->ptr);
- efree(intern->document);
- }
- ((xsltStylesheetPtr) intern->ptr)->doc = NULL;
- intern->document = NULL;
- }
xsltFreeStylesheet((xsltStylesheetPtr) intern->ptr);
intern->ptr = NULL;
intern->ptr = NULL;
intern->prop_handler = NULL;
intern->parameter = NULL;
- intern->document = NULL;
ALLOC_HASHTABLE(intern->std.properties);
zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
sheetp = xsltParseStylesheetDoc(newdoc);
if (!sheetp) {
+ xmlFreeDoc(newdoc);
RETURN_FALSE;
}
if (((xsltStylesheetPtr) intern->ptr)->_private != NULL) {
((xsltStylesheetPtr) intern->ptr)->_private = NULL;
}
- if (intern->document != NULL) {
- if (--intern->document->refcount == 0) {
- xmlFreeDoc((xmlDocPtr) intern->document->ptr);
- efree(intern->document);
- }
- ((xsltStylesheetPtr) intern->ptr)->doc = NULL;
- intern->document = NULL;
- }
xsltFreeStylesheet((xsltStylesheetPtr) intern->ptr);
intern->ptr = NULL;
}
- intern->document = emalloc(sizeof(dom_ref_obj));
- intern->document->ptr = newdoc;
- intern->document->refcount = 1;
-
php_xsl_set_object(id, sheetp TSRMLS_CC);
}
/* }}} end xsl_xsltprocessor_import_stylesheet */