diff options
| author | Ondřej Surý <ondrej@sury.org> | 2013-03-22 08:32:53 +0100 |
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2013-03-22 08:32:53 +0100 |
| commit | f21eff8954d5956842795ea5653a9a5b8d62caa3 (patch) | |
| tree | adbe3c3feb67f383afe32b3974794eb1d5ec8cc8 /ext/dom | |
| parent | 92984f18f6aee9c0f719febb9fc09a0c50262c2f (diff) | |
| download | php-f21eff8954d5956842795ea5653a9a5b8d62caa3.tar.gz | |
Imported Upstream version 5.5.0~beta1upstream/5.5.0_beta1
Diffstat (limited to 'ext/dom')
| -rw-r--r-- | ext/dom/dom_iterators.c | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/ext/dom/dom_iterators.c b/ext/dom/dom_iterators.c index f4183d2f9..6c8cf84e9 100644 --- a/ext/dom/dom_iterators.c +++ b/ext/dom/dom_iterators.c @@ -157,35 +157,22 @@ static void php_dom_iterator_current_data(zend_object_iterator *iter, zval ***da } /* }}} */ -static int php_dom_iterator_current_key(zend_object_iterator *iter, char **str_key, uint *str_key_len, ulong *int_key TSRMLS_DC) /* {{{ */ +static void php_dom_iterator_current_key(zend_object_iterator *iter, zval *key TSRMLS_DC) /* {{{ */ { - zval *curobj; - xmlNodePtr curnode = NULL; - dom_object *intern; - zval *object; - int namelen; - php_dom_iterator *iterator = (php_dom_iterator *)iter; - - object = (zval *)iterator->intern.data; + zval *object = (zval *)iterator->intern.data; if (instanceof_function(Z_OBJCE_P(object), dom_nodelist_class_entry TSRMLS_CC)) { - *int_key = iter->index; - return HASH_KEY_IS_LONG; + ZVAL_LONG(key, iter->index); } else { - curobj = iterator->curobj; + dom_object *intern = (dom_object *)zend_object_store_get_object(iterator->curobj TSRMLS_CC); - intern = (dom_object *)zend_object_store_get_object(curobj TSRMLS_CC); if (intern != NULL && intern->ptr != NULL) { - curnode = (xmlNodePtr)((php_libxml_node_ptr *)intern->ptr)->node; + xmlNodePtr curnode = (xmlNodePtr)((php_libxml_node_ptr *)intern->ptr)->node; + ZVAL_STRINGL(key, (char *) curnode->name, xmlStrlen(curnode->name), 1); } else { - return HASH_KEY_NON_EXISTANT; + ZVAL_NULL(key); } - - namelen = xmlStrlen(curnode->name); - *str_key = estrndup(curnode->name, namelen); - *str_key_len = namelen + 1; - return HASH_KEY_IS_STRING; } } /* }}} */ |
