]> granicus.if.org Git - php/commitdiff
- MFB (Fixed Bug #46048: SimpleXML top-level @attributes not in iterator).
authorDavid Coallier <davidc@php.net>
Wed, 4 Feb 2009 00:07:27 +0000 (00:07 +0000)
committerDavid Coallier <davidc@php.net>
Wed, 4 Feb 2009 00:07:27 +0000 (00:07 +0000)
ext/simplexml/simplexml.c
ext/simplexml/tests/bug46048.phpt [new file with mode: 0644]

index 8e88e6e0ac9e3fb4bbe80799b1d5655727196f63..ba7aed44b2b80431820f639407c3a2960ee36b5b 100644 (file)
@@ -1081,7 +1081,7 @@ static HashTable * sxe_get_prop_hash(zval *object, int is_debug TSRMLS_DC) /* {{
        if (!node) {
                return rv;
        }
-       if (is_debug) {
+       if (is_debug || sxe->iter.type != SXE_ITER_CHILD) {
                if (sxe->iter.type == SXE_ITER_ELEMENT) {
                        node = php_sxe_get_first_node(sxe, node TSRMLS_CC);
                }
diff --git a/ext/simplexml/tests/bug46048.phpt b/ext/simplexml/tests/bug46048.phpt
new file mode 100644 (file)
index 0000000..e3eb4f5
--- /dev/null
@@ -0,0 +1,24 @@
+--TEST--
+Bug #46048 (SimpleXML top-level @attributes not part of iterator)
+--FILE--
+<?php
+$xml = '
+<data id="1">
+    <key>value</key>
+</data>
+';
+$obj = simplexml_load_string($xml);
+print_r(get_object_vars($obj));
+echo "Done\n";
+?>
+--EXPECT--     
+Array
+(
+    [@attributes] => Array
+        (
+            [id] => 1
+        )
+
+    [key] => value
+)
+Done