]> granicus.if.org Git - php/commitdiff
Fix #79528: Different object of the same xml between 7.4.5 and 7.4.4
authorChristoph M. Becker <cmbecker69@gmx.de>
Fri, 1 May 2020 10:19:32 +0000 (12:19 +0200)
committerChristoph M. Becker <cmbecker69@gmx.de>
Fri, 1 May 2020 10:37:39 +0000 (12:37 +0200)
Revert "Fix #61597: SXE properties may lack attributes and content"

This reverts commit 7c081db885756d7b176a55b90b8746f664d1e042.

NEWS
ext/simplexml/simplexml.c
ext/simplexml/tests/000.phpt
ext/simplexml/tests/009b.phpt
ext/simplexml/tests/bug51615.phpt
ext/simplexml/tests/bug61597.phpt [deleted file]

diff --git a/NEWS b/NEWS
index 598941399332ea9678300385fb6180dec46d6262..c5e465c526f43bece09b0dc512c347cd5cf52667 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,10 @@ PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? ????, PHP 7.3.19
 
+- SimpleXML:
+  . Fixed bug #79528 (Different object of the same xml between 7.4.5 and
+    7.4.4). (cmb)
+
 30 Apr 2020, PHP 7.3.18RC1
 
 - Core:
index a27a9849a318e8c8eaa3d70db81af70aa8af55e7..ab394b5c83b76659991e3963df5568c3f442b716 100644 (file)
@@ -964,7 +964,7 @@ static void _get_base_node_value(php_sxe_object *sxe_ref, xmlNodePtr node, zval
        php_sxe_object *subnode;
        xmlChar        *contents;
 
-       if ((!node->properties || node->type == XML_ENTITY_DECL) && node->children && node->children->type == XML_TEXT_NODE && !xmlIsBlankNode(node->children)) {
+       if (node->children && node->children->type == XML_TEXT_NODE && !xmlIsBlankNode(node->children)) {
                contents = xmlNodeListGetString(node->doc, node->children, 1);
                if (contents) {
                        ZVAL_STRING(value, (char *)contents);
index dde32d8eaa093e55c46d8823a98d3c88ff71daa8..8a35fc9ba353ce52f7529a6bc8527706af172a4e 100644 (file)
@@ -51,37 +51,7 @@ object(SimpleXMLElement)#%d (3) {
   ["elem1"]=>
   array(2) {
     [0]=>
-    object(SimpleXMLElement)#%d (3) {
-      ["@attributes"]=>
-      array(2) {
-        ["attr1"]=>
-        string(5) "first"
-        ["attr2"]=>
-        string(6) "second"
-      }
-      ["comment"]=>
-      object(SimpleXMLElement)#%d (0) {
-      }
-      ["elem2"]=>
-      object(SimpleXMLElement)#%d (2) {
-        ["@attributes"]=>
-        array(2) {
-          ["att25"]=>
-          string(2) "25"
-          ["att42"]=>
-          string(2) "42"
-        }
-        ["elem3"]=>
-        object(SimpleXMLElement)#%d (1) {
-          ["elem4"]=>
-          object(SimpleXMLElement)#%d (1) {
-            ["test"]=>
-            object(SimpleXMLElement)#%d (0) {
-            }
-          }
-        }
-      }
-    }
+    string(36) "There is some text.Here is some more"
     [1]=>
     object(SimpleXMLElement)#%d (1) {
       ["@attributes"]=>
index a8ca72c5eaa725686d9ed42a635771ef1878ad00..fd920e2e265b29720e24579ff216b8a4d12e7d20 100644 (file)
@@ -28,29 +28,8 @@ object(SimpleXMLElement)#%d (3) {
     string(5) "elem1"
   }
   ["elem1"]=>
-  object(SimpleXMLElement)#%d (3) {
-    ["@attributes"]=>
-    array(1) {
-      ["attr1"]=>
-      string(5) "first"
-    }
-    ["comment"]=>
-    object(SimpleXMLElement)#%d (0) {
-    }
-    ["elem2"]=>
-    string(35) "
-   Here we have some text data.
-  "
-  }
+  string(10) "Bla bla 1."
   ["elem11"]=>
-  object(SimpleXMLElement)#%d (2) {
-    ["@attributes"]=>
-    array(1) {
-      ["attr2"]=>
-      string(6) "second"
-    }
-    [0]=>
-    string(10) "Bla bla 2."
-  }
+  string(10) "Bla bla 2."
 }
 ===DONE===
index 32af5f6ee4021df42c4a877e4ada606d38db3be7..b935414b80daf0e95f9674054a5fd2366c23aff5 100644 (file)
@@ -22,7 +22,7 @@ foreach ($html->body->span as $obj) {
 Warning: DOMDocument::loadHTML(): error parsing attribute name in Entity, line: 1 in %s on line %d
 
 Warning: DOMDocument::loadHTML(): error parsing attribute name in Entity, line: 1 in %s on line %d
-object(SimpleXMLElement)#5 (3) {
+object(SimpleXMLElement)#%d (3) {
   ["@attributes"]=>
   array(2) {
     ["title"]=>
@@ -31,29 +31,9 @@ object(SimpleXMLElement)#5 (3) {
     string(0) ""
   }
   [0]=>
-  object(SimpleXMLElement)#4 (2) {
-    ["@attributes"]=>
-    array(2) {
-      ["title"]=>
-      string(0) ""
-      ["y"]=>
-      string(0) ""
-    }
-    [0]=>
-    string(1) "x"
-  }
+  string(1) "x"
   [1]=>
-  object(SimpleXMLElement)#6 (2) {
-    ["@attributes"]=>
-    array(2) {
-      ["title"]=>
-      string(0) ""
-      ["z"]=>
-      string(0) ""
-    }
-    [0]=>
-    string(1) "x"
-  }
+  string(1) "x"
 }
 string(0) ""
 string(0) ""
diff --git a/ext/simplexml/tests/bug61597.phpt b/ext/simplexml/tests/bug61597.phpt
deleted file mode 100644 (file)
index 65fa6be..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
---TEST--
-Bug #61597 (SXE properties may lack attributes and content)
---SKIPIF--
-<?php
-if (!extension_loaded('simplexml')) die('skip simplexml extension not available');
-?>
---FILE--
-<?php
-$xml = <<<'EOX'
-<?xml version="1.0"?>
-<data>
-<datum file-key="8708124062829849862">corn</datum>
-</data>
-EOX;
-
-var_dump(simplexml_load_string($xml));
-?>
---EXPECTF--
-object(SimpleXMLElement)#%d (1) {
-  ["datum"]=>
-  object(SimpleXMLElement)#%d (2) {
-    ["@attributes"]=>
-    array(1) {
-      ["file-key"]=>
-      string(19) "8708124062829849862"
-    }
-    [0]=>
-    string(4) "corn"
-  }
-}