com php-src: Merge branch 'PHP-5.6': ext/dom/node.c
| From: | Christoph Michael Becker | Date: | Fri, 04 Sep 2015 23:32:08 +0000 |
| Subject: | com php-src: Merge branch 'PHP-5.6': ext/dom/node.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-88918@lists.php.net to get a copy of this message | ||
Commit: c9a8733ce2a953e46c07c380b15617d62f51dabd
Author: Christoph M. Becker <cmb@php.net> Sat, 5 Sep 2015 01:32:08 +0200
Parents: 320e891f5b39d26b422185803c809c995b43b7b2 dc1a8dd7f09af5807aadf3ed5ffc9c443cd9e74c
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=c9a8733ce2a953e46c07c380b15617d62f51dabd
Log:
Merge branch 'PHP-5.6'
* PHP-5.6:
Fix #70001: Assigning to DOMNode::textContent does additional entity encoding
Resolved conflicts:
ext/dom/node.c
Bugs:
https://bugs.php.net/70001
Changed paths:
MM ext/dom/node.c
Diff:
diff --cc ext/dom/node.c
index 2023073,5b955c0..2f35e01
--- a/ext/dom/node.c
+++ b/ext/dom/node.c
@@@ -843,22 -926,23 +843,21 @@@ int dom_node_text_content_read(dom_obje
return SUCCESS;
}
-int dom_node_text_content_write(dom_object *obj, zval *newval TSRMLS_DC)
+int dom_node_text_content_write(dom_object *obj, zval *newval)
{
xmlNode *nodep = dom_object_get_node(obj);
- zval value_copy;
+ zend_string *str;
- xmlChar *enc_str;
if (nodep == NULL) {
- php_dom_throw_error(INVALID_STATE_ERR, 0 TSRMLS_CC);
+ php_dom_throw_error(INVALID_STATE_ERR, 0);
return FAILURE;
}
- convert_to_string_copy(newval, value_copy);
+ str = zval_get_string(newval);
- enc_str = xmlEncodeEntitiesReentrant(nodep->doc, (xmlChar *) ZSTR_VAL(str));
- xmlNodeSetContent(nodep, enc_str);
- xmlFree(enc_str);
+ /* we have to use xmlNodeAddContent() to get the same behavior as with xmlNewText() */
+ xmlNodeSetContent(nodep, (xmlChar *) "");
- xmlNodeAddContent(nodep, Z_STRVAL_P(newval));
- if (newval == &value_copy) {
- zval_dtor(newval);
- }
++ xmlNodeAddContent(nodep, ZSTR_VAL(str));
+ zend_string_release(str);
return SUCCESS;
}