@@ -975,10 +975,9 @@ static int sxe_prop_is_empty(zend_object *object) /* {{{ */
975975 php_sxe_object * sxe ;
976976 xmlNodePtr node ;
977977 xmlAttrPtr attr ;
978- zval iter_data ;
979978 int test ;
980979 int is_empty ;
981- int use_iter = 0 ;
980+ bool use_iter = false ;
982981
983982 sxe = php_sxe_fetch_object (object );
984983
@@ -1004,18 +1003,15 @@ static int sxe_prop_is_empty(zend_object *object) /* {{{ */
10041003 GET_NODE (sxe , node );
10051004 node = php_sxe_get_first_node (sxe , node );
10061005 is_empty = 1 ;
1007- ZVAL_UNDEF (& iter_data );
10081006 if (node && sxe -> iter .type != SXE_ITER_ATTRLIST ) {
10091007 if (node -> type == XML_ATTRIBUTE_NODE ) {
10101008 return 0 ;
10111009 } else if (sxe -> iter .type != SXE_ITER_CHILD ) {
10121010 if (sxe -> iter .type == SXE_ITER_NONE || !node -> children || !node -> parent || node -> children -> next || node -> children -> children || node -> parent -> children == node -> parent -> last ) {
10131011 node = node -> children ;
10141012 } else {
1015- ZVAL_COPY_VALUE (& iter_data , & sxe -> iter .data );
1016- ZVAL_UNDEF (& sxe -> iter .data );
1017- node = php_sxe_reset_iterator (sxe , 0 );
1018- use_iter = 1 ;
1013+ node = php_sxe_reset_iterator_no_clear_iter_data (sxe , 0 );
1014+ use_iter = true;
10191015 }
10201016 }
10211017
@@ -1052,13 +1048,6 @@ static int sxe_prop_is_empty(zend_object *object) /* {{{ */
10521048 }
10531049 }
10541050
1055- if (use_iter ) {
1056- if (!Z_ISUNDEF (sxe -> iter .data )) {
1057- zval_ptr_dtor (& sxe -> iter .data );
1058- }
1059- ZVAL_COPY_VALUE (& sxe -> iter .data , & iter_data );
1060- }
1061-
10621051 return is_empty ;
10631052}
10641053/* }}} */
@@ -1074,10 +1063,7 @@ static HashTable *sxe_get_prop_hash(zend_object *object, int is_debug) /* {{{ */
10741063 xmlAttrPtr attr ;
10751064 int namelen ;
10761065 int test ;
1077- char use_iter ;
1078- zval iter_data ;
1079-
1080- use_iter = 0 ;
1066+ bool use_iter = false;
10811067
10821068 sxe = php_sxe_fetch_object (object );
10831069
@@ -1127,16 +1113,11 @@ static HashTable *sxe_get_prop_hash(zend_object *object, int is_debug) /* {{{ */
11271113 zend_hash_next_index_insert (rv , & value );
11281114 node = NULL ;
11291115 } else if (sxe -> iter .type != SXE_ITER_CHILD ) {
1130-
11311116 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 ) {
11321117 node = node -> children ;
11331118 } else {
1134- ZVAL_COPY_VALUE (& iter_data , & sxe -> iter .data );
1135- ZVAL_UNDEF (& sxe -> iter .data );
1136-
1137- node = php_sxe_reset_iterator (sxe , 0 );
1138-
1139- use_iter = 1 ;
1119+ node = php_sxe_reset_iterator_no_clear_iter_data (sxe , 0 );
1120+ use_iter = true;
11401121 }
11411122 }
11421123
@@ -1188,13 +1169,6 @@ static HashTable *sxe_get_prop_hash(zend_object *object, int is_debug) /* {{{ */
11881169 }
11891170 }
11901171
1191- if (use_iter ) {
1192- if (!Z_ISUNDEF (sxe -> iter .data )) {
1193- zval_ptr_dtor (& sxe -> iter .data );
1194- }
1195- ZVAL_COPY_VALUE (& sxe -> iter .data , & iter_data );
1196- }
1197-
11981172 return rv ;
11991173}
12001174/* }}} */
0 commit comments