[PHP-CVS] cvs: php-src(PHP_5_3) /ext/dom php_dom.c /ext/dom/tests bug46849.phpt
rrichards Tue Dec 16 12:53:29 2008 UTC Added files: (Branch: PHP_5_3) /php-src/ext/dom/tests bug46849.phpt Modified files: /php-src/ext/domphp_dom.c Log: MFH: fix bug #46849 (Cloning DOMDocument doesn't clone the properties) fix some warnings add test http://cvs.php.net/viewvc.cgi/php-src/ext/dom/php_dom.c?r1=1.73.2.12.2.12.2.12&r2=1.73.2.12.2.12.2.13&diff_format=u Index: php-src/ext/dom/php_dom.c diff -u php-src/ext/dom/php_dom.c:1.73.2.12.2.12.2.12 php-src/ext/dom/php_dom.c:1.73.2.12.2.12.2.13 --- php-src/ext/dom/php_dom.c:1.73.2.12.2.12.2.12 Mon Nov 17 11:27:54 2008 +++ php-src/ext/dom/php_dom.c Tue Dec 16 12:53:29 2008 @@ -18,7 +18,7 @@ +--+ */ -/* $Id: php_dom.c,v 1.73.2.12.2.12.2.12 2008/11/17 11:27:54 felipe Exp $ */ +/* $Id: php_dom.c,v 1.73.2.12.2.12.2.13 2008/12/16 12:53:29 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -172,6 +172,31 @@ } } +static void dom_copy_doc_props(php_libxml_ref_obj *source_doc, php_libxml_ref_obj *dest_doc) +{ + dom_doc_propsptr source, dest; + + if (source_doc && dest_doc) { + + source = dom_get_doc_props(source_doc); + dest = dom_get_doc_props(dest_doc); + + dest->formatoutput = source->formatoutput; + dest->validateonparse = source->validateonparse; + dest->resolveexternals = source->resolveexternals; + dest->preservewhitespace = source->preservewhitespace; + dest->substituteentities = source->substituteentities; + dest->stricterror = source->stricterror; + dest->recover = source->recover; + if (source->classmap) { + ALLOC_HASHTABLE(dest->classmap); + zend_hash_init(dest->classmap, 0, NULL, NULL, 0); + zend_hash_copy(dest->classmap, source->classmap, NULL, NULL, sizeof(zend_class_entry *)); + } + + } +} + int dom_set_doc_classmap(php_libxml_ref_obj *document, zend_class_entry *basece, zend_class_entry *ce TSRMLS_DC) { dom_doc_propsptr doc_props; @@ -1078,6 +1103,9 @@ } php_libxml_increment_doc_ref((php_libxml_node_object *)clone, cloned_node->doc TSRMLS_CC); php_libxml_increment_node_ptr((php_libxml_node_object *)clone, cloned_node, (void *)clone TSRMLS_CC); + if (intern->document != clone->document) { + dom_copy_doc_props(intern->document, clone->document); + } } } @@ -1371,8 +1399,8 @@ while (nodep != NULL && (*cur <= index || index == -1)) { if (nodep->type == XML_ELEMENT_NODE) { - if (xmlStrEqual(nodep->name, local) || xmlStrEqual("*", local)) { - if (ns == NULL || (nodep->ns != NULL && (xmlStrEqual(nodep->ns->href, ns) || xmlStrEqual("*", ns { + if (xmlStrEqual(nodep->name, (xmlChar *)local) || xmlStrEqual((xmlChar *)"*", (xmlChar *)local)) { + if (ns == NULL || (nodep->ns != NULL && (xmlStrEqual(nodep->ns->href, (xmlChar *)ns) || xmlStrEqual((xmlChar *)"*", (xmlChar *)ns { if (*cur == index) { ret = nodep; break; @@ -1479,9 +1507,9 @@ return NAMESPACE_ERR; } - *localname = xmlSplitQName2(qname, (xmlChar **) prefix); + *localname = (char *)xmlSplitQName2((xmlChar *)qname, (xmlChar **) prefix); if (*localname == NULL) { - *localname = xmlStrdup(qname); + *localname = (char *)xmlStrdup((xmlChar *)qname); if (*prefix == NULL && uri_len == 0) { return 0; } @@ -1517,10 +1545,10 @@ *errorcode = 0; - if (! ((prefix && !strcmp (prefix, "xml" ) && strcmp(uri, XML_XML_NAMESPACE)) || - (prefix && !strcmp (prefix, "xmlns") && strcmp(uri, DOM_XMLNS_NAMESPACE)) || - (prefix && !strcmp(uri, DOM_XMLNS_NAMESPACE) && strcmp (prefix, "xmlns" { - nsptr = xmlNewNs(nodep, uri, prefix); + if (! ((prefix && !strcmp (prefix, "xml") && strcmp(uri, (char *)XML_XML_NAMESPACE)) || + (prefix && !strcmp (prefix, "xmlns") && strcmp(uri, (char *)DOM_XMLNS_NAMESPACE)) || + (prefix && !strcmp(uri, (char *)DOM_XMLNS_NAMESPACE) && strcmp (prefix, "xmlns" { + nsptr = xmlNewNs(nodep, (xmlChar *)uri, (xmlChar *)prefix); } if (nsptr == NULL) { @@ -
[PHP-CVS] cvs: php-src(PHP_5_3) /ext/dom php_dom.c
rrichards Wed Oct 29 21:21:47 2008 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/domphp_dom.c Log: MFH: fix bug #46406 (Unregistering nodeclass throws E_FATAL) http://cvs.php.net/viewvc.cgi/php-src/ext/dom/php_dom.c?r1=1.73.2.12.2.12.2.9&r2=1.73.2.12.2.12.2.10&diff_format=u Index: php-src/ext/dom/php_dom.c diff -u php-src/ext/dom/php_dom.c:1.73.2.12.2.12.2.9 php-src/ext/dom/php_dom.c:1.73.2.12.2.12.2.10 --- php-src/ext/dom/php_dom.c:1.73.2.12.2.12.2.9Fri Oct 24 14:35:33 2008 +++ php-src/ext/dom/php_dom.c Wed Oct 29 21:21:47 2008 @@ -18,7 +18,7 @@ +--+ */ -/* $Id: php_dom.c,v 1.73.2.12.2.12.2.9 2008/10/24 14:35:33 felipe Exp $ */ +/* $Id: php_dom.c,v 1.73.2.12.2.12.2.10 2008/10/29 21:21:47 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -188,7 +188,7 @@ if (ce) { return zend_hash_update(doc_props->classmap, basece->name, basece->name_length + 1, &ce, sizeof(ce), NULL); } else { - return zend_hash_del(doc_props->classmap, basece->name, basece->name_length + 1); + zend_hash_del(doc_props->classmap, basece->name, basece->name_length + 1); } } return SUCCESS; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_3) /ext/dom php_dom.c /ext/json json.c /ext/pdo pdo.c
felipe Fri Jun 27 19:16:18 2008 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/domphp_dom.c /php-src/ext/json json.c /php-src/ext/pdopdo.c Log: - Added arginfo http://cvs.php.net/viewvc.cgi/php-src/ext/dom/php_dom.c?r1=1.73.2.12.2.12.2.5&r2=1.73.2.12.2.12.2.6&diff_format=u Index: php-src/ext/dom/php_dom.c diff -u php-src/ext/dom/php_dom.c:1.73.2.12.2.12.2.5 php-src/ext/dom/php_dom.c:1.73.2.12.2.12.2.6 --- php-src/ext/dom/php_dom.c:1.73.2.12.2.12.2.5Tue Mar 18 14:10:45 2008 +++ php-src/ext/dom/php_dom.c Fri Jun 27 19:16:17 2008 @@ -18,7 +18,7 @@ +--+ */ -/* $Id: php_dom.c,v 1.73.2.12.2.12.2.5 2008/03/18 14:10:45 felipe Exp $ */ +/* $Id: php_dom.c,v 1.73.2.12.2.12.2.6 2008/06/27 19:16:17 felipe Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -503,8 +503,15 @@ return retval; } +/* {{{ arginfo */ +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_import_simplexml, 0, 0, 1) + ZEND_ARG_INFO(0, node) +ZEND_END_ARG_INFO() +/* }}} */ + static const zend_function_entry dom_functions[] = { - PHP_FE(dom_import_simplexml, NULL) + PHP_FE(dom_import_simplexml, arginfo_dom_import_simplexml) {NULL, NULL, NULL} }; http://cvs.php.net/viewvc.cgi/php-src/ext/json/json.c?r1=1.9.2.19.2.6&r2=1.9.2.19.2.7&diff_format=u Index: php-src/ext/json/json.c diff -u php-src/ext/json/json.c:1.9.2.19.2.6 php-src/ext/json/json.c:1.9.2.19.2.7 --- php-src/ext/json/json.c:1.9.2.19.2.6Wed Jan 30 08:10:17 2008 +++ php-src/ext/json/json.c Fri Jun 27 19:16:17 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: json.c,v 1.9.2.19.2.6 2008/01/30 08:10:17 dmitry Exp $ */ +/* $Id: json.c,v 1.9.2.19.2.7 2008/06/27 19:16:17 felipe Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -42,13 +42,26 @@ #define PHP_JSON_HEX_APOS (1<<2) #define PHP_JSON_HEX_QUOT (1<<3) +/* {{{ arginfo */ +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_json_encode, 0, 0, 1) + ZEND_ARG_INFO(0, value) +ZEND_END_ARG_INFO() + +static +ZEND_BEGIN_ARG_INFO_EX(arginfo_json_decode, 0, 0, 1) + ZEND_ARG_INFO(0, json) + ZEND_ARG_INFO(0, assoc) +ZEND_END_ARG_INFO() +/* }}} */ + /* {{{ json_functions[] * * Every user visible function must have an entry in json_functions[]. */ static const function_entry json_functions[] = { -PHP_FE(json_encode, NULL) -PHP_FE(json_decode, NULL) +PHP_FE(json_encode, arginfo_json_encode) +PHP_FE(json_decode, arginfo_json_decode) {NULL, NULL, NULL} /* Must be the last line in json_functions[] */ }; /* }}} */ http://cvs.php.net/viewvc.cgi/php-src/ext/pdo/pdo.c?r1=1.57.2.17.2.9.2.2&r2=1.57.2.17.2.9.2.3&diff_format=u Index: php-src/ext/pdo/pdo.c diff -u php-src/ext/pdo/pdo.c:1.57.2.17.2.9.2.2 php-src/ext/pdo/pdo.c:1.57.2.17.2.9.2.3 --- php-src/ext/pdo/pdo.c:1.57.2.17.2.9.2.2 Mon Dec 31 07:17:11 2007 +++ php-src/ext/pdo/pdo.c Fri Jun 27 19:16:17 2008 @@ -18,7 +18,7 @@ +--+ */ -/* $Id: pdo.c,v 1.57.2.17.2.9.2.2 2007/12/31 07:17:11 sebastian Exp $ */ +/* $Id: pdo.c,v 1.57.2.17.2.9.2.3 2008/06/27 19:16:17 felipe Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -113,9 +113,15 @@ } /* }}} */ +/* {{{ arginfo */ +static +ZEND_BEGIN_ARG_INFO(arginfo_pdo_drivers, 0) +ZEND_END_ARG_INFO() +/* }}} */ + /* {{{ pdo_functions[] */ const zend_function_entry pdo_functions[] = { - PHP_FE(pdo_drivers, NULL) + PHP_FE(pdo_drivers, arginfo_pdo_drivers) {NULL, NULL, NULL} }; /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php