Skip to content

Commit

Permalink
fix regression introduced in 5683b6f
Browse files Browse the repository at this point in the history
Test extended. Basically, both iterator type and next node have
to be checked.
  • Loading branch information
weltling committed Mar 8, 2016
1 parent 2d4ad66 commit 8ca02bb
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 1 deletion.
2 changes: 1 addition & 1 deletion ext/simplexml/simplexml.c
Original file line number Diff line number Diff line change
Expand Up @@ -1129,7 +1129,7 @@ static HashTable * sxe_get_prop_hash(zval *object, int is_debug TSRMLS_DC) /* {{
node = NULL;
} else if (sxe->iter.type != SXE_ITER_CHILD) {

if ( sxe->iter.type == SXE_ITER_NONE || !node->children || !node->parent || node->children->next || node->children->children || node->parent->children == node->parent->last ) {
if ( sxe->iter.type == SXE_ITER_NONE || !node->children || !node->parent || !node->next || node->children->next || node->children->children || node->parent->children == node->parent->last ) {
node = node->children;
} else {
iter_data = sxe->iter.data;
Expand Down
2 changes: 2 additions & 0 deletions ext/simplexml/tests/bug66084_1.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@ Bug #66084 simplexml_load_string() mangles empty node name, json variant
<?php if (!extension_loaded("json")) print "skip json not available"; ?>
--FILE--
<?php
echo json_encode(simplexml_load_string('<a><b/><c><x/></c></a>')->c), "\n";
echo json_encode(simplexml_load_string('<a><b/><c><x/></c></a>')), "\n";
echo json_encode(simplexml_load_string('<a><b/><d/><c><x/></c></a>')), "\n";
echo json_encode(simplexml_load_string('<a><b/><c><d/><x/></c></a>')), "\n";
echo json_encode(simplexml_load_string('<a><b/><c><d><x/></d></c></a>')), "\n";
?>
--EXPECT--
{"x":{}}
{"b":{},"c":{"x":{}}}
{"b":{},"d":{},"c":{"x":{}}}
{"b":{},"c":{"d":{},"x":{}}}
Expand Down

0 comments on commit 8ca02bb

Please sign in to comment.