summaryrefslogtreecommitdiff
path: root/ext/xsl/xsltprocessor.c
diff options
context:
space:
mode:
authorRob Richards <rrichards@php.net>2004-03-01 12:43:34 +0000
committerRob Richards <rrichards@php.net>2004-03-01 12:43:34 +0000
commit5e4b2874638d694ee6c58a878e26612bced898f1 (patch)
tree95987098ffaa91dd956211f73a94436503fc04f0 /ext/xsl/xsltprocessor.c
parentafc35efcf629c62a7ca1bd2d52673fb2b50ec348 (diff)
downloadphp-git-5e4b2874638d694ee6c58a878e26612bced898f1.tar.gz
use php_libxml_import_node for transform functions
Diffstat (limited to 'ext/xsl/xsltprocessor.c')
-rw-r--r--ext/xsl/xsltprocessor.c38
1 files changed, 32 insertions, 6 deletions
diff --git a/ext/xsl/xsltprocessor.c b/ext/xsl/xsltprocessor.c
index 4187b6760c..a285c79831 100644
--- a/ext/xsl/xsltprocessor.c
+++ b/ext/xsl/xsltprocessor.c
@@ -379,12 +379,12 @@ PHP_FUNCTION(xsl_xsltprocessor_transform_to_doc)
{
zval *id, *rv = NULL, *docp = NULL;
xmlDoc *doc = NULL;
+ xmlNodePtr node = NULL;
xmlDoc *newdocp;
xsltStylesheetPtr sheetp;
int ret, clone;
char **params = NULL;
xsl_object *intern;
- php_libxml_node_object *docobj;
id = getThis();
intern = (xsl_object *)zend_object_store_get_object(id TSRMLS_CC);
@@ -393,7 +393,16 @@ PHP_FUNCTION(xsl_xsltprocessor_transform_to_doc)
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o", &docp) == FAILURE) {
RETURN_FALSE;
}
- DOC_GET_OBJ(doc, docp, xmlDocPtr, docobj);
+
+ node = php_libxml_import_node(docp TSRMLS_CC);
+
+ if (node) {
+ doc = node->doc;
+ }
+ if (doc == NULL) {
+ php_error(E_WARNING, "Invalid Document");
+ RETURN_NULL();
+ }
if (intern->parameter) {
params = php_xsl_xslt_make_params(intern->parameter, 0 TSRMLS_CC);
@@ -437,11 +446,11 @@ PHP_FUNCTION(xsl_xsltprocessor_transform_to_uri)
zval *id, *docp = NULL;
xmlDoc *doc = NULL;
xmlDoc *newdocp;
+ xmlNodePtr node = NULL;
xsltStylesheetPtr sheetp;
int ret, uri_len, clone;
char **params = NULL, *uri;
xsl_object *intern;
- php_libxml_node_object *docobj;
id = getThis();
intern = (xsl_object *)zend_object_store_get_object(id TSRMLS_CC);
@@ -451,7 +460,15 @@ PHP_FUNCTION(xsl_xsltprocessor_transform_to_uri)
RETURN_FALSE;
}
- DOC_GET_OBJ(doc, docp, xmlDocPtr, docobj);
+ node = php_libxml_import_node(docp TSRMLS_CC);
+
+ if (node) {
+ doc = node->doc;
+ }
+ if (doc == NULL) {
+ php_error(E_WARNING, "Invalid Document");
+ RETURN_NULL();
+ }
if (intern->parameter) {
params = php_xsl_xslt_make_params(intern->parameter, 0 TSRMLS_CC);
@@ -497,13 +514,13 @@ PHP_FUNCTION(xsl_xsltprocessor_transform_to_xml)
zval *id, *docp = NULL;
xmlDoc *doc = NULL;
xmlDoc *newdocp;
+ xmlNodePtr node = NULL;
xsltStylesheetPtr sheetp;
int ret, clone;
xmlChar *doc_txt_ptr;
int doc_txt_len;
char **params = NULL;
xsl_object *intern;
- php_libxml_node_object *docobj;
id = getThis();
intern = (xsl_object *)zend_object_store_get_object(id TSRMLS_CC);
@@ -512,7 +529,16 @@ PHP_FUNCTION(xsl_xsltprocessor_transform_to_xml)
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o", &docp) == FAILURE) {
RETURN_FALSE;
}
- DOC_GET_OBJ(doc, docp, xmlDocPtr, docobj);
+
+ node = php_libxml_import_node(docp TSRMLS_CC);
+
+ if (node) {
+ doc = node->doc;
+ }
+ if (doc == NULL) {
+ php_error(E_WARNING, "Invalid Document");
+ RETURN_NULL();
+ }
if (intern->parameter) {
params = php_xsl_xslt_make_params(intern->parameter, 0 TSRMLS_CC);