rrichards               Wed May 17 16:35:50 2006 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src/ext/dom    php_dom.c dom_iterators.c 
  Log:
  Synch from HEAD
  - Fix bug #37456 (DOMElement->setAttribute() loops forever)
  - update iterators for engine change merged from HEAD
  
  
http://cvs.php.net/viewcvs.cgi/php-src/ext/dom/php_dom.c?r1=1.73.2.12.2.2&r2=1.73.2.12.2.3&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.2 
php-src/ext/dom/php_dom.c:1.73.2.12.2.3
--- php-src/ext/dom/php_dom.c:1.73.2.12.2.2     Wed May 10 19:39:46 2006
+++ php-src/ext/dom/php_dom.c   Wed May 17 16:35:50 2006
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_dom.c,v 1.73.2.12.2.2 2006/05/10 19:39:46 helly Exp $ */
+/* $Id: php_dom.c,v 1.73.2.12.2.3 2006/05/17 16:35:50 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -860,6 +860,8 @@
                if (wrapper != NULL ) {
                        xmlUnlinkNode(node);
                } else {
+                       if (node->type == XML_ENTITY_REF_NODE)
+                               break;
                        node_list_unlink(node->children TSRMLS_CC);
 
                        switch (node->type) {
http://cvs.php.net/viewcvs.cgi/php-src/ext/dom/dom_iterators.c?r1=1.9.2.3.2.2&r2=1.9.2.3.2.3&diff_format=u
Index: php-src/ext/dom/dom_iterators.c
diff -u php-src/ext/dom/dom_iterators.c:1.9.2.3.2.2 
php-src/ext/dom/dom_iterators.c:1.9.2.3.2.3
--- php-src/ext/dom/dom_iterators.c:1.9.2.3.2.2 Wed May 10 18:32:50 2006
+++ php-src/ext/dom/dom_iterators.c     Wed May 17 16:35:50 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: dom_iterators.c,v 1.9.2.3.2.2 2006/05/10 18:32:50 fmk Exp $ */
+/* $Id: dom_iterators.c,v 1.9.2.3.2.3 2006/05/17 16:35:50 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -162,7 +162,7 @@
        object = (zval *)iterator->intern.data;
 
        if (instanceof_function(Z_OBJCE_P(object), dom_nodelist_class_entry 
TSRMLS_CC)) {
-               *int_key = iter->index - 1;
+               *int_key = iter->index;
                return HASH_KEY_IS_LONG;
        } else {
                curobj = iterator->curobj;
@@ -187,7 +187,7 @@
        dom_object *intern;
        dom_object *nnmap;
        dom_nnodemap_object *objmap;
-       int ret, previndex=1;
+       int ret, previndex=0;
        HashTable *nodeht;
        zval **entry;
 
@@ -228,9 +228,9 @@
                        }
                } else {
                        if (objmap->nodetype == XML_ENTITY_NODE) {
-                               curnode = php_dom_libxml_hash_iter(objmap->ht, 
iter->index - 1);
+                               curnode = php_dom_libxml_hash_iter(objmap->ht, 
iter->index);
                        } else {
-                               curnode = 
php_dom_libxml_notation_iter(objmap->ht, iter->index - 1);
+                               curnode = 
php_dom_libxml_notation_iter(objmap->ht, iter->index);
                        }
                }
        }
@@ -268,7 +268,7 @@
                zend_error(E_ERROR, "An iterator cannot be used with foreach by 
reference");
        }
        iterator = emalloc(sizeof(php_dom_iterator));
-       
+
        object->refcount++;
        iterator->intern.data = (void*)object;
        iterator->intern.funcs = &php_dom_iterator_funcs;

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

Reply via email to