summaryrefslogtreecommitdiff
path: root/ext/xsl/xsltprocessor.c
diff options
context:
space:
mode:
authorRob Richards <rrichards@php.net>2003-08-24 10:18:08 +0000
committerRob Richards <rrichards@php.net>2003-08-24 10:18:08 +0000
commitea1b33438a64413b82aef0aa197c8f44e4277e78 (patch)
tree3be4005c4eea98118989ae4fcdd30603ff29275e /ext/xsl/xsltprocessor.c
parent38805f28098dcf7f27588c605eaba214ab044031 (diff)
downloadphp-git-ea1b33438a64413b82aef0aa197c8f44e4277e78.tar.gz
remove document pointer references as doc is now copied
Diffstat (limited to 'ext/xsl/xsltprocessor.c')
-rw-r--r--ext/xsl/xsltprocessor.c13
1 files changed, 1 insertions, 12 deletions
diff --git a/ext/xsl/xsltprocessor.c b/ext/xsl/xsltprocessor.c
index 27d22fef05..403a370634 100644
--- a/ext/xsl/xsltprocessor.c
+++ b/ext/xsl/xsltprocessor.c
@@ -144,6 +144,7 @@ PHP_FUNCTION(xsl_xsltprocessor_import_stylesheet)
sheetp = xsltParseStylesheetDoc(newdoc);
if (!sheetp) {
+ xmlFreeDoc(newdoc);
RETURN_FALSE;
}
@@ -153,22 +154,10 @@ PHP_FUNCTION(xsl_xsltprocessor_import_stylesheet)
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 */