@@ -975,10 +975,9 @@ static int sxe_prop_is_empty(zend_object *object) /* {{{ */
975
975
php_sxe_object * sxe ;
976
976
xmlNodePtr node ;
977
977
xmlAttrPtr attr ;
978
- zval iter_data ;
979
978
int test ;
980
979
int is_empty ;
981
- int use_iter = 0 ;
980
+ bool use_iter = false ;
982
981
983
982
sxe = php_sxe_fetch_object (object );
984
983
@@ -1004,18 +1003,15 @@ static int sxe_prop_is_empty(zend_object *object) /* {{{ */
1004
1003
GET_NODE (sxe , node );
1005
1004
node = php_sxe_get_first_node (sxe , node );
1006
1005
is_empty = 1 ;
1007
- ZVAL_UNDEF (& iter_data );
1008
1006
if (node && sxe -> iter .type != SXE_ITER_ATTRLIST ) {
1009
1007
if (node -> type == XML_ATTRIBUTE_NODE ) {
1010
1008
return 0 ;
1011
1009
} else if (sxe -> iter .type != SXE_ITER_CHILD ) {
1012
1010
if (sxe -> iter .type == SXE_ITER_NONE || !node -> children || !node -> parent || node -> children -> next || node -> children -> children || node -> parent -> children == node -> parent -> last ) {
1013
1011
node = node -> children ;
1014
1012
} 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;
1019
1015
}
1020
1016
}
1021
1017
@@ -1052,13 +1048,6 @@ static int sxe_prop_is_empty(zend_object *object) /* {{{ */
1052
1048
}
1053
1049
}
1054
1050
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
-
1062
1051
return is_empty ;
1063
1052
}
1064
1053
/* }}} */
@@ -1074,10 +1063,7 @@ static HashTable *sxe_get_prop_hash(zend_object *object, int is_debug) /* {{{ */
1074
1063
xmlAttrPtr attr ;
1075
1064
int namelen ;
1076
1065
int test ;
1077
- char use_iter ;
1078
- zval iter_data ;
1079
-
1080
- use_iter = 0 ;
1066
+ bool use_iter = false;
1081
1067
1082
1068
sxe = php_sxe_fetch_object (object );
1083
1069
@@ -1127,16 +1113,11 @@ static HashTable *sxe_get_prop_hash(zend_object *object, int is_debug) /* {{{ */
1127
1113
zend_hash_next_index_insert (rv , & value );
1128
1114
node = NULL ;
1129
1115
} else if (sxe -> iter .type != SXE_ITER_CHILD ) {
1130
-
1131
1116
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 ) {
1132
1117
node = node -> children ;
1133
1118
} 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;
1140
1121
}
1141
1122
}
1142
1123
@@ -1188,13 +1169,6 @@ static HashTable *sxe_get_prop_hash(zend_object *object, int is_debug) /* {{{ */
1188
1169
}
1189
1170
}
1190
1171
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
-
1198
1172
return rv ;
1199
1173
}
1200
1174
/* }}} */
0 commit comments