rrichards Wed May 3 08:43:04 2006 UTC Added files: (Branch: PHP_5_1) /php-src/ext/dom/tests bug37277.phpt
Modified files: /php-src/ext/dom attr.c element.c php_dom.c Log: Fix bug #37277 (cloning Dom Documents or Nodes does not work) Proper fix for bug #36859 add test http://cvs.php.net/viewcvs.cgi/php-src/ext/dom/attr.c?r1=1.18.2.1&r2=1.18.2.2&diff_format=u Index: php-src/ext/dom/attr.c diff -u php-src/ext/dom/attr.c:1.18.2.1 php-src/ext/dom/attr.c:1.18.2.2 --- php-src/ext/dom/attr.c:1.18.2.1 Sun Jan 1 12:50:06 2006 +++ php-src/ext/dom/attr.c Wed May 3 08:43:04 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: attr.c,v 1.18.2.1 2006/01/01 12:50:06 sniper Exp $ */ +/* $Id: attr.c,v 1.18.2.2 2006/05/03 08:43:04 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -77,7 +77,7 @@ } if (intern != NULL) { - oldnode = (xmlNodePtr)intern->ptr; + oldnode = dom_object_get_node(intern); if (oldnode != NULL) { php_libxml_node_free_resource(oldnode TSRMLS_CC); } http://cvs.php.net/viewcvs.cgi/php-src/ext/dom/element.c?r1=1.36.2.3&r2=1.36.2.4&diff_format=u Index: php-src/ext/dom/element.c diff -u php-src/ext/dom/element.c:1.36.2.3 php-src/ext/dom/element.c:1.36.2.4 --- php-src/ext/dom/element.c:1.36.2.3 Sun Jan 1 12:50:06 2006 +++ php-src/ext/dom/element.c Wed May 3 08:43:04 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: element.c,v 1.36.2.3 2006/01/01 12:50:06 sniper Exp $ */ +/* $Id: element.c,v 1.36.2.4 2006/05/03 08:43:04 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -128,7 +128,7 @@ intern = (dom_object *)zend_object_store_get_object(id TSRMLS_CC); if (intern != NULL) { - oldnode = (xmlNodePtr)intern->ptr; + oldnode = dom_object_get_node(intern); if (oldnode != NULL) { php_libxml_node_free_resource(oldnode TSRMLS_CC); } http://cvs.php.net/viewcvs.cgi/php-src/ext/dom/php_dom.c?r1=1.73.2.11&r2=1.73.2.12&diff_format=u Index: php-src/ext/dom/php_dom.c diff -u php-src/ext/dom/php_dom.c:1.73.2.11 php-src/ext/dom/php_dom.c:1.73.2.12 --- php-src/ext/dom/php_dom.c:1.73.2.11 Wed Mar 29 14:28:41 2006 +++ php-src/ext/dom/php_dom.c Wed May 3 08:43:04 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_dom.c,v 1.73.2.11 2006/03/29 14:28:41 tony2001 Exp $ */ +/* $Id: php_dom.c,v 1.73.2.12 2006/05/03 08:43:04 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -443,7 +443,6 @@ retval.handle = zend_objects_store_put(new_object, obj->dtor, obj->free_storage, obj->clone TSRMLS_CC); intern = (dom_object *) new_object; intern->handle = retval.handle; - intern->ptr = NULL; retval.handlers = Z_OBJ_HT_P(zobject); old_object = (dom_object *) obj->object; http://cvs.php.net/viewcvs.cgi/php-src/ext/dom/tests/bug37277.phpt?view=markup&rev=1.1 Index: php-src/ext/dom/tests/bug37277.phpt +++ php-src/ext/dom/tests/bug37277.phpt --TEST-- Bug # 37277 (cloning Dom Documents or Nodes does not work) --SKIPIF-- <?php require_once('skipif.inc'); ?> --FILE-- <?php $dom1 = new DomDocument('1.0', 'UTF-8'); $xml = '<foo />'; $dom1->loadXml($xml); $node = clone $dom1->documentElement; $dom2 = new DomDocument('1.0', 'UTF-8'); $dom2->appendChild($dom2->importNode($node->cloneNode(true), TRUE)); print $dom2->saveXML(); ?> --EXPECT-- <?xml version="1.0" encoding="UTF-8"?> <foo/> -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php