mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Fix libxml/sxe/dom node import/export
Also fix sxe zts.
This commit is contained in:
parent
3434d3fc98
commit
59d45e69f4
3 changed files with 8 additions and 8 deletions
|
@ -477,7 +477,7 @@ void *php_dom_export_node(zval *object TSRMLS_DC) /* {{{ */
|
|||
php_libxml_node_object *intern;
|
||||
xmlNodePtr nodep = NULL;
|
||||
|
||||
intern = Z_DOMOBJ_P(object);
|
||||
intern = (php_libxml_node_object *) Z_DOMOBJ_P(object);
|
||||
if (intern->node) {
|
||||
nodep = intern->node->node;
|
||||
}
|
||||
|
@ -499,7 +499,7 @@ PHP_FUNCTION(dom_import_simplexml)
|
|||
return;
|
||||
}
|
||||
|
||||
nodeobj = Z_DOMOBJ_P(node);
|
||||
nodeobj = (php_libxml_node_object *) ((char *) Z_OBJ_P(node) - Z_OBJ_HT_P(node)->offset);
|
||||
nodep = php_libxml_import_node(node TSRMLS_CC);
|
||||
|
||||
if (nodep && nodeobj && (nodep->type == XML_ELEMENT_NODE || nodep->type == XML_ATTRIBUTE_NODE)) {
|
||||
|
|
|
@ -1152,7 +1152,7 @@ PHP_LIBXML_API xmlNodePtr php_libxml_import_node(zval *object TSRMLS_DC)
|
|||
while (ce->parent != NULL) {
|
||||
ce = ce->parent;
|
||||
}
|
||||
if ((export_hnd = zend_hash_find_ptr(&php_libxml_exports, ce->name)) == SUCCESS) {
|
||||
if ((export_hnd = zend_hash_find_ptr(&php_libxml_exports, ce->name))) {
|
||||
node = export_hnd->export_func(object TSRMLS_CC);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -971,7 +971,7 @@ static void sxe_dimension_delete(zval *object, zval *offset TSRMLS_DC)
|
|||
}
|
||||
/* }}} */
|
||||
|
||||
static inline zend_string * sxe_xmlNodeListGetString(xmlDocPtr doc, xmlNodePtr list, int inLine) /* {{{ */
|
||||
static inline zend_string *sxe_xmlNodeListGetString(xmlDocPtr doc, xmlNodePtr list, int inLine TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
xmlChar *tmp = xmlNodeListGetString(doc, list, inLine);
|
||||
zend_string *res;
|
||||
|
@ -1085,7 +1085,7 @@ static HashTable *sxe_get_prop_hash(zval *object, int is_debug TSRMLS_DC) /* {{{
|
|||
test = sxe->iter.name && sxe->iter.type == SXE_ITER_ATTRLIST;
|
||||
while (attr) {
|
||||
if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr)attr, sxe->iter.nsprefix, sxe->iter.isprefix)) {
|
||||
ZVAL_STR(&value, sxe_xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, attr->children, 1));
|
||||
ZVAL_STR(&value, sxe_xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, attr->children, 1 TSRMLS_CC));
|
||||
namelen = xmlStrlen(attr->name);
|
||||
if (ZVAL_IS_UNDEF(&zattr)) {
|
||||
array_init(&zattr);
|
||||
|
@ -1103,7 +1103,7 @@ static HashTable *sxe_get_prop_hash(zval *object, int is_debug TSRMLS_DC) /* {{{
|
|||
|
||||
if (node && sxe->iter.type != SXE_ITER_ATTRLIST) {
|
||||
if (node->type == XML_ATTRIBUTE_NODE) {
|
||||
ZVAL_STR(&value, sxe_xmlNodeListGetString(node->doc, node->children, 1));
|
||||
ZVAL_STR(&value, sxe_xmlNodeListGetString(node->doc, node->children, 1 TSRMLS_CC));
|
||||
zend_hash_next_index_insert(rv, &value);
|
||||
node = NULL;
|
||||
} else if (sxe->iter.type != SXE_ITER_CHILD) {
|
||||
|
@ -1128,7 +1128,7 @@ static HashTable *sxe_get_prop_hash(zval *object, int is_debug TSRMLS_DC) /* {{{
|
|||
const xmlChar *cur = node->content;
|
||||
|
||||
if (*cur != 0) {
|
||||
ZVAL_STR(&value, sxe_xmlNodeListGetString(node->doc, node, 1));
|
||||
ZVAL_STR(&value, sxe_xmlNodeListGetString(node->doc, node, 1 TSRMLS_CC));
|
||||
zend_hash_next_index_insert(rv, &value);
|
||||
}
|
||||
goto next_iter;
|
||||
|
@ -2384,7 +2384,7 @@ PHP_FUNCTION(simplexml_import_dom)
|
|||
return;
|
||||
}
|
||||
|
||||
object = (php_libxml_node_object *)Z_SXEOBJ_P(node);
|
||||
object = (php_libxml_node_object *) ((char *) Z_OBJ_P(node) - Z_OBJ_HT_P(node)->offset);
|
||||
|
||||
nodep = php_libxml_import_node(node TSRMLS_CC);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue