rrichards               Fri Mar 13 13:41:43 2009 UTC

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

  Modified files:              
    /php-src/ext/dom    attr.c document.c node.c 
  Log:
  fix bug #47430 (Errors after writing to nodeValue parameter of an absent 
previousSibling)
  add test
  
http://cvs.php.net/viewvc.cgi/php-src/ext/dom/attr.c?r1=1.18.2.2.2.5&r2=1.18.2.2.2.6&diff_format=u
Index: php-src/ext/dom/attr.c
diff -u php-src/ext/dom/attr.c:1.18.2.2.2.5 php-src/ext/dom/attr.c:1.18.2.2.2.6
--- php-src/ext/dom/attr.c:1.18.2.2.2.5 Wed Dec 31 11:17:37 2008
+++ php-src/ext/dom/attr.c      Fri Mar 13 13:41:42 2009
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: attr.c,v 1.18.2.2.2.5 2008/12/31 11:17:37 sebastian Exp $ */
+/* $Id: attr.c,v 1.18.2.2.2.6 2009/03/13 13:41:42 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -29,7 +29,6 @@
 
 #include "php_dom.h"
 
-
 /* {{{ arginfo */
 static
 ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_attr_is_id, 0, 0, 0)
@@ -99,7 +98,6 @@
 
 /* }}} end DOMAttr::__construct */
 
-
 /* {{{ name    string  
 readonly=yes 
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-1112119403
@@ -124,8 +122,6 @@
 
 /* }}} */
 
-
-
 /* {{{ specified       boolean 
 readonly=yes 
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-862529273
@@ -141,8 +137,6 @@
 
 /* }}} */
 
-
-
 /* {{{ value   string  
 readonly=no 
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-221662474
@@ -210,8 +204,6 @@
 
 /* }}} */
 
-
-
 /* {{{ ownerElement    DOMElement      
 readonly=yes 
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Attr-ownerElement
@@ -229,13 +221,14 @@
                return FAILURE;
        }
 
+       ALLOC_ZVAL(*retval);
+
        nodeparent = nodep->parent;
        if (!nodeparent) {
-               return FAILURE;
+               ZVAL_NULL(*retval);
+               return SUCCESS;
        }
 
-       ALLOC_ZVAL(*retval);
-
        if (NULL == (*retval = php_dom_create_object(nodeparent, &ret, NULL, 
*retval, obj TSRMLS_CC))) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING,  "Cannot create 
required DOM object");
                return FAILURE;
@@ -246,8 +239,6 @@
 
 /* }}} */
 
-
-
 /* {{{ schemaTypeInfo  DOMTypeInfo     
 readonly=yes 
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Attr-schemaTypeInfo
@@ -263,8 +254,6 @@
 
 /* }}} */
 
-
-
 /* {{{ proto boolean dom_attr_is_id();
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Attr-isId
 Since: DOM Level 3
http://cvs.php.net/viewvc.cgi/php-src/ext/dom/document.c?r1=1.68.2.3.2.11&r2=1.68.2.3.2.12&diff_format=u
Index: php-src/ext/dom/document.c
diff -u php-src/ext/dom/document.c:1.68.2.3.2.11 
php-src/ext/dom/document.c:1.68.2.3.2.12
--- php-src/ext/dom/document.c:1.68.2.3.2.11    Mon Jan 26 19:11:19 2009
+++ php-src/ext/dom/document.c  Fri Mar 13 13:41:42 2009
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: document.c,v 1.68.2.3.2.11 2009/01/26 19:11:19 rrichards Exp $ */
+/* $Id: document.c,v 1.68.2.3.2.12 2009/03/13 13:41:42 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -283,12 +283,14 @@
                return FAILURE;
        }
 
+       ALLOC_ZVAL(*retval);
+
        dtdptr = xmlGetIntSubset(docp);
        if (!dtdptr) {
-               return FAILURE;
+               ZVAL_NULL(*retval);
+               return SUCCESS;
        }
 
-       ALLOC_ZVAL(*retval);
        if (NULL == (*retval = php_dom_create_object((xmlNodePtr) dtdptr, &ret, 
NULL, *retval, obj TSRMLS_CC))) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create 
required DOM object");
                return FAILURE;
@@ -299,8 +301,6 @@
 
 /* }}} */
 
-
-
 /* {{{ implementation  DOMImplementation       
 readonly=yes 
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1B793EBA
@@ -315,8 +315,6 @@
 
 /* }}} */
 
-
-
 /* {{{ documentElement DOMElement      
 readonly=yes 
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-87CD092
@@ -335,12 +333,14 @@
                return FAILURE;
        }
 
+       ALLOC_ZVAL(*retval);
+
        root = xmlDocGetRootElement(docp);
        if (!root) {
-               return FAILURE;
+               ZVAL_NULL(*retval);
+               return SUCCESS;
        }
 
-       ALLOC_ZVAL(*retval);
        if (NULL == (*retval = php_dom_create_object(root, &ret, NULL, *retval, 
obj TSRMLS_CC))) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create 
required DOM object");
                return FAILURE;
@@ -421,8 +421,6 @@
 
 /* }}} */
 
-
-
 /* {{{ standalone      boolean 
 readonly=no 
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Document3-standalone
@@ -487,8 +485,6 @@
 
 /* }}} */
 
-
-
 /* {{{ version string  
 readonly=no
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Document3-version
http://cvs.php.net/viewvc.cgi/php-src/ext/dom/node.c?r1=1.37.2.3.2.13&r2=1.37.2.3.2.14&diff_format=u
Index: php-src/ext/dom/node.c
diff -u php-src/ext/dom/node.c:1.37.2.3.2.13 
php-src/ext/dom/node.c:1.37.2.3.2.14
--- php-src/ext/dom/node.c:1.37.2.3.2.13        Wed Dec 31 11:17:37 2008
+++ php-src/ext/dom/node.c      Fri Mar 13 13:41:42 2009
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: node.c,v 1.37.2.3.2.13 2008/12/31 11:17:37 sebastian Exp $ */
+/* $Id: node.c,v 1.37.2.3.2.14 2009/03/13 13:41:42 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -260,7 +260,6 @@
                        break;
                default:
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid 
Node Type");
-                       return FAILURE;
        }
 
        ALLOC_ZVAL(*retval);
@@ -428,13 +427,14 @@
                return FAILURE;
        }
 
+       ALLOC_ZVAL(*retval);
+
        nodeparent = nodep->parent;
        if (!nodeparent) {
-               return FAILURE;
+               ZVAL_NULL(*retval);
+               return SUCCESS;
        }
 
-       ALLOC_ZVAL(*retval);
-
        if (NULL == (*retval = php_dom_create_object(nodeparent, &ret, NULL, 
*retval, obj TSRMLS_CC))) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create 
required DOM object");
                return FAILURE;
@@ -501,12 +501,13 @@
                first = nodep->children;
        }
 
+       ALLOC_ZVAL(*retval);
+
        if (!first) {
-               return FAILURE;
+               ZVAL_NULL(*retval);
+               return SUCCESS;
        }
 
-       ALLOC_ZVAL(*retval);
-
        if (NULL == (*retval = php_dom_create_object(first, &ret, NULL, 
*retval, obj TSRMLS_CC))) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create 
required DOM object");
                return FAILURE;
@@ -539,12 +540,13 @@
                last = nodep->last;
        }
 
+       ALLOC_ZVAL(*retval);
+
        if (!last) {
-               return FAILURE;
+               ZVAL_NULL(*retval);
+               return SUCCESS;
        }
 
-       ALLOC_ZVAL(*retval);
-
        if (NULL == (*retval = php_dom_create_object(last, &ret, NULL, *retval, 
obj TSRMLS_CC))) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create 
required DOM object");
                return FAILURE;
@@ -573,13 +575,14 @@
                return FAILURE;
        }
 
+       ALLOC_ZVAL(*retval);
+
        prevsib = nodep->prev;
        if (!prevsib) {
-               return FAILURE;
+               ZVAL_NULL(*retval);
+               return SUCCESS;
        }
 
-       ALLOC_ZVAL(*retval);
-
        if (NULL == (*retval = php_dom_create_object(prevsib, &ret, NULL, 
*retval, obj TSRMLS_CC))) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create 
required DOM object");
                return FAILURE;

http://cvs.php.net/viewvc.cgi/php-src/ext/dom/tests/bug47430.phpt?view=markup&rev=1.1
Index: php-src/ext/dom/tests/bug47430.phpt
+++ php-src/ext/dom/tests/bug47430.phpt



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

Reply via email to