[PHP-CVS] cvs: php-src(PHP_5_3) /ext/dom php_dom.c /ext/dom/tests bug46849.phpt

2008-12-16 Thread Rob Richards
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

2008-10-29 Thread Rob Richards
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

2008-06-27 Thread Felipe Pena
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