objmap->nodetype != XML_NOTATION_NODE) {
if (objmap->nodetype == DOM_NODESET) {
nodeht = HASH_OF(&objmap->baseobj_zv);
- zend_hash_move_forward(nodeht);
- if ((entry = zend_hash_get_current_data(nodeht))) {
+ zend_hash_move_forward_ex(nodeht, &iterator->pos);
+ if ((entry = zend_hash_get_current_data_ex(nodeht, &iterator->pos))) {
zval_ptr_dtor(&iterator->curobj);
ZVAL_UNDEF(&iterator->curobj);
ZVAL_COPY(&iterator->curobj, entry);
objmap->nodetype != XML_NOTATION_NODE) {
if (objmap->nodetype == DOM_NODESET) {
nodeht = HASH_OF(&objmap->baseobj_zv);
- zend_hash_internal_pointer_reset(nodeht);
- if ((entry = zend_hash_get_current_data(nodeht))) {
+ zend_hash_internal_pointer_reset_ex(nodeht, &iterator->pos);
+ if ((entry = zend_hash_get_current_data_ex(nodeht, &iterator->pos))) {
ZVAL_COPY(&iterator->curobj, entry);
}
} else {
int i;
xmlNodeSetPtr nodesetp;
- array_init(&retval);
if (xpathobjp->type == XPATH_NODESET && NULL != (nodesetp = xpathobjp->nodesetval) && nodesetp->nodeNr) {
+
+ array_init(&retval);
for (i = 0; i < nodesetp->nodeNr; i++) {
xmlNodePtr node = nodesetp->nodeTab[i];
zval child;
php_dom_create_object(node, &child, &intern->dom);
add_next_index_zval(&retval, &child);
}
+ } else {
+ ZVAL_EMPTY_ARRAY(&retval);
}
php_dom_create_interator(return_value, DOM_NODELIST);
nodeobj = Z_DOMOBJ_P(return_value);