[PHP-CVS] cvs: php-src(PHP_5_2) /ext/dom node.c

2008-01-29 Thread Sebastian Bergmann
sebastian   Tue Jan 29 15:23:25 2008 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/domnode.c 
  Log:
  MFH: Add Reflection API metadata for DOMNode.
  
http://cvs.php.net/viewvc.cgi/php-src/ext/dom/node.c?r1=1.37.2.3.2.9r2=1.37.2.3.2.10diff_format=u
Index: php-src/ext/dom/node.c
diff -u php-src/ext/dom/node.c:1.37.2.3.2.9 php-src/ext/dom/node.c:1.37.2.3.2.10
--- php-src/ext/dom/node.c:1.37.2.3.2.9 Mon Dec 31 07:20:06 2007
+++ php-src/ext/dom/node.c  Tue Jan 29 15:23:25 2008
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: node.c,v 1.37.2.3.2.9 2007/12/31 07:20:06 sebastian Exp $ */
+/* $Id: node.c,v 1.37.2.3.2.10 2008/01/29 15:23:25 sebastian Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include config.h
@@ -27,6 +27,122 @@
 #if HAVE_LIBXML  HAVE_DOM
 #include php_dom.h
 
+/* {{{ arginfo */
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_insert_before, 0, 0, 2)
+   ZEND_ARG_OBJ_INFO(0, newChild, DOMNode, 0)
+   ZEND_ARG_OBJ_INFO(0, refChild, DOMNode, 0)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_replace_child, 0, 0, 2)
+   ZEND_ARG_OBJ_INFO(0, newChild, DOMNode, 0)
+   ZEND_ARG_OBJ_INFO(0, oldChild, DOMNode, 0)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_remove_child, 0, 0, 1)
+   ZEND_ARG_OBJ_INFO(0, oldChild, DOMNode, 0)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_append_child, 0, 0, 1)
+   ZEND_ARG_OBJ_INFO(0, newChild, DOMNode, 0)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_has_child_nodes, 0, 0, 0)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_clone_node, 0, 0, 1)
+   ZEND_ARG_INFO(0, deep)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_normalize, 0, 0, 0)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_is_supported, 0, 0, 2)
+   ZEND_ARG_INFO(0, feature)
+   ZEND_ARG_INFO(0, version)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_has_attributes, 0, 0, 0)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_compare_document_position, 0, 0, 1)
+   ZEND_ARG_OBJ_INFO(0, other, DOMNode, 0)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_is_same_node, 0, 0, 1)
+   ZEND_ARG_OBJ_INFO(0, other, DOMNode, 0)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_lookup_prefix, 0, 0, 1)
+   ZEND_ARG_INFO(0, namespaceURI)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_is_default_namespace, 0, 0, 1)
+   ZEND_ARG_INFO(0, namespaceURI)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_lookup_namespace_uri, 0, 0, 1)
+   ZEND_ARG_INFO(0, prefix)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_is_equal_node, 0, 0, 1)
+   ZEND_ARG_OBJ_INFO(0, arg, DOMNode, 0)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_get_feature, 0, 0, 2)
+   ZEND_ARG_INFO(0, feature)
+   ZEND_ARG_INFO(0, version)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_set_user_data, 0, 0, 3)
+   ZEND_ARG_INFO(0, key)
+   ZEND_ARG_OBJ_INFO(0, data, DOMUserData, 0)
+   ZEND_ARG_INFO(0, handler)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_get_user_data, 0, 0, 1)
+   ZEND_ARG_INFO(0, key)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_getNodePath, 0, 0, 0)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_C14N, 0, 0, 0)
+   ZEND_ARG_INFO(0, exclusive)
+   ZEND_ARG_INFO(0, with_comments)
+   ZEND_ARG_ARRAY_INFO(0, xpath, 0)
+   ZEND_ARG_ARRAY_INFO(0, ns_prefixes, 0)
+ZEND_END_ARG_INFO();
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_C14NFile, 0, 0, 1)
+   ZEND_ARG_INFO(0, uri)
+   ZEND_ARG_INFO(0, exclusive)
+   ZEND_ARG_INFO(0, with_comments)
+   ZEND_ARG_ARRAY_INFO(0, xpath, 0)
+   ZEND_ARG_ARRAY_INFO(0, ns_prefixes, 0)
+ZEND_END_ARG_INFO();
+/* }}} */
+
 /*
 * class DOMNode 
 *
@@ -35,27 +151,27 @@
 */
 
 zend_function_entry php_dom_node_class_functions[] = {
-   PHP_FALIAS(insertBefore, dom_node_insert_before, NULL)
-   PHP_FALIAS(replaceChild, dom_node_replace_child, NULL)
-   PHP_FALIAS(removeChild, dom_node_remove_child, NULL)
-   PHP_FALIAS(appendChild, dom_node_append_child, NULL)
-   PHP_FALIAS(hasChildNodes, dom_node_has_child_nodes, NULL)
-   PHP_FALIAS(cloneNode, dom_node_clone_node, NULL)
-   PHP_FALIAS(normalize, dom_node_normalize, NULL)
-   PHP_FALIAS(isSupported, dom_node_is_supported, NULL)
-   PHP_FALIAS(hasAttributes, dom_node_has_attributes, NULL)
-   PHP_FALIAS(compareDocumentPosition, dom_node_compare_document_position, 
NULL)
-   PHP_FALIAS(isSameNode, dom_node_is_same_node, NULL)
-   

[PHP-CVS] cvs: php-src(PHP_5_2) /ext/dom node.c

2008-01-29 Thread Sebastian Bergmann
sebastian   Wed Jan 30 06:48:20 2008 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/domnode.c 
  Log:
  MFH: Fix arginfo.
  
http://cvs.php.net/viewvc.cgi/php-src/ext/dom/node.c?r1=1.37.2.3.2.10r2=1.37.2.3.2.11diff_format=u
Index: php-src/ext/dom/node.c
diff -u php-src/ext/dom/node.c:1.37.2.3.2.10 
php-src/ext/dom/node.c:1.37.2.3.2.11
--- php-src/ext/dom/node.c:1.37.2.3.2.10Tue Jan 29 15:23:25 2008
+++ php-src/ext/dom/node.c  Wed Jan 30 06:48:20 2008
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: node.c,v 1.37.2.3.2.10 2008/01/29 15:23:25 sebastian Exp $ */
+/* $Id: node.c,v 1.37.2.3.2.11 2008/01/30 06:48:20 sebastian Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include config.h
@@ -29,9 +29,9 @@
 
 /* {{{ arginfo */
 static
-ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_insert_before, 0, 0, 2)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_insert_before, 0, 0, 1)
ZEND_ARG_OBJ_INFO(0, newChild, DOMNode, 0)
-   ZEND_ARG_OBJ_INFO(0, refChild, DOMNode, 0)
+   ZEND_ARG_OBJ_INFO(0, refChild, DOMNode, 1)
 ZEND_END_ARG_INFO();
 
 static
@@ -129,8 +129,8 @@
 ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_node_C14N, 0, 0, 0)
ZEND_ARG_INFO(0, exclusive)
ZEND_ARG_INFO(0, with_comments)
-   ZEND_ARG_ARRAY_INFO(0, xpath, 0)
-   ZEND_ARG_ARRAY_INFO(0, ns_prefixes, 0)
+   ZEND_ARG_ARRAY_INFO(0, xpath, 1)
+   ZEND_ARG_ARRAY_INFO(0, ns_prefixes, 1)
 ZEND_END_ARG_INFO();
 
 static
@@ -138,8 +138,8 @@
ZEND_ARG_INFO(0, uri)
ZEND_ARG_INFO(0, exclusive)
ZEND_ARG_INFO(0, with_comments)
-   ZEND_ARG_ARRAY_INFO(0, xpath, 0)
-   ZEND_ARG_ARRAY_INFO(0, ns_prefixes, 0)
+   ZEND_ARG_ARRAY_INFO(0, xpath, 1)
+   ZEND_ARG_ARRAY_INFO(0, ns_prefixes, 1)
 ZEND_END_ARG_INFO();
 /* }}} */
 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/dom node.c /ext/dom/tests bug40836.phpt

2007-03-18 Thread Rob Richards
rrichards   Sun Mar 18 21:31:05 2007 UTC

  Added files: (Branch: PHP_5_2)
/php-src/ext/dom/tests  bug40836.phpt 

  Modified files:  
/php-src/ext/domnode.c 
  Log:
  MFH: fix bug #40836 (Segfault in ext/dom)
  add test
  
http://cvs.php.net/viewvc.cgi/php-src/ext/dom/node.c?r1=1.37.2.3.2.6r2=1.37.2.3.2.7diff_format=u
Index: php-src/ext/dom/node.c
diff -u php-src/ext/dom/node.c:1.37.2.3.2.6 php-src/ext/dom/node.c:1.37.2.3.2.7
--- php-src/ext/dom/node.c:1.37.2.3.2.6 Mon Jan  1 09:36:00 2007
+++ php-src/ext/dom/node.c  Sun Mar 18 21:31:04 2007
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: node.c,v 1.37.2.3.2.6 2007/01/01 09:36:00 sebastian Exp $ */
+/* $Id: node.c,v 1.37.2.3.2.7 2007/03/18 21:31:04 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include config.h
@@ -1012,7 +1012,7 @@
new_child = xmlAddPrevSibling(refp, child);
}
} else {
-   if (child-parent == parentp){
+   if (child-parent != NULL){
xmlUnlinkNode(child);
}
if (child-type == XML_TEXT_NODE  parentp-last != NULL  
parentp-last-type == XML_TEXT_NODE) {

http://cvs.php.net/viewvc.cgi/php-src/ext/dom/tests/bug40836.phpt?view=markuprev=1.1
Index: php-src/ext/dom/tests/bug40836.phpt
+++ php-src/ext/dom/tests/bug40836.phpt
--TEST--
Bug # 40836 (Segfault in insertBefore)
--SKIPIF--
?php require_once('skipif.inc'); ?
--FILE--
?php
$dom = new DOMDocument(1.0, UTF-8);
$dom-preserveWhiteSpace = false;
$xml = (binary)'?xml version=1.0 encoding=utf-8?
feed xmlns=http://www.w3.org/2005/Atom;
  entry xmlns=http://www.w3.org/2005/Atom;
updated2007-02-14T00:00:00+01:00/updated
content
  div xmlns=http://www.w3.org/1999/xhtml;
pparagraph/p
  /div
/content
  /entry
/feed';
$dom-loadXML($xml);
$entry = $dom-getElementsByTagNameNS(http://www.w3.org/2005/Atom;, 
entry)-item(0);
$contentNode = $entry-getElementsByTagName(content)-item(0)-firstChild;
$dateNode = $entry-getElementsByTagName(updated)-item(0)-firstChild;
$contentNode-firstChild-insertBefore($dateNode);
echo $dom-saveXML();
?
--EXPECT--
?xml version=1.0 encoding=utf-8?
feed xmlns=http://www.w3.org/2005/Atom;entry 
xmlns=http://www.w3.org/2005/Atom;updated/contentdiv 
xmlns=http://www.w3.org/1999/xhtml;pparagraph2007-02-14T00:00:00+01:00/p/div/content/entry/feed

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/dom node.c

2006-08-07 Thread Antony Dovgal
tony2001Mon Aug  7 20:23:35 2006 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/domnode.c 
  Log:
  fix types of the variables
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/dom/node.c?r1=1.37.2.3.2.3r2=1.37.2.3.2.4diff_format=u
Index: php-src/ext/dom/node.c
diff -u php-src/ext/dom/node.c:1.37.2.3.2.3 php-src/ext/dom/node.c:1.37.2.3.2.4
--- php-src/ext/dom/node.c:1.37.2.3.2.3 Sun Jul 16 16:04:09 2006
+++ php-src/ext/dom/node.c  Mon Aug  7 20:23:35 2006
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: node.c,v 1.37.2.3.2.3 2006/07/16 16:04:09 chregu Exp $ */
+/* $Id: node.c,v 1.37.2.3.2.4 2006/08/07 20:23:35 tony2001 Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include config.h
@@ -1682,11 +1682,11 @@
xmlDocPtr docp;
xmlNodeSetPtr nodeset = NULL;
dom_object *intern;
-   long exclusive=0, with_comments=0, file_len=0;
+   zend_bool exclusive=0, with_comments=0;
xmlChar **inclusive_ns_prefixes = NULL;
char *file = NULL;
-int ret = -1;
-xmlOutputBufferPtr buf;
+   int ret = -1, file_len = 0;
+   xmlOutputBufferPtr buf;
xmlXPathContextPtr ctxp=NULL;
xmlXPathObjectPtr xpathobjp=NULL;
 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src(PHP_5_2) /ext/dom node.c

2006-07-16 Thread Christian Stocker
chregu  Sun Jul 16 16:04:09 2006 UTC

  Modified files:  (Branch: PHP_5_2)
/php-src/ext/domnode.c 
  Log:
  improved code (after suggestion by helly)
  
  
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/dom/node.c?r1=1.37.2.3.2.2r2=1.37.2.3.2.3diff_format=u
Index: php-src/ext/dom/node.c
diff -u php-src/ext/dom/node.c:1.37.2.3.2.2 php-src/ext/dom/node.c:1.37.2.3.2.3
--- php-src/ext/dom/node.c:1.37.2.3.2.2 Sun Jul 16 15:03:53 2006
+++ php-src/ext/dom/node.c  Sun Jul 16 16:04:09 2006
@@ -17,7 +17,7 @@
+--+
 */
 
-/* $Id: node.c,v 1.37.2.3.2.2 2006/07/16 15:03:53 chregu Exp $ */
+/* $Id: node.c,v 1.37.2.3.2.3 2006/07/16 16:04:09 chregu Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include config.h
@@ -1870,15 +1870,12 @@
char *value;

 
-   if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), 
O, id, dom_node_class_entry) == FAILURE) {
-   return;
-   }
-
-   DOM_GET_OBJ(nodep, id, xmlNodePtr, intern);
+   
+   DOM_GET_THIS_OBJ(nodep, id, xmlNodePtr, intern);
 
value = xmlGetNodePath(nodep);
if (value == NULL) {
-   RETURN_EMPTY_STRING();
+   RETURN_NULL();
} else {
RETVAL_STRING(value, 1);
xmlFree(value);

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php