diff options
Diffstat (limited to 'ext/dom/nodelist.c')
-rw-r--r-- | ext/dom/nodelist.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/ext/dom/nodelist.c b/ext/dom/nodelist.c index 1a0c811185..86330c8348 100644 --- a/ext/dom/nodelist.c +++ b/ext/dom/nodelist.c @@ -51,7 +51,7 @@ readonly=yes URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-203510337 Since: */ -int dom_nodelist_length_read(dom_object *obj, zval **retval TSRMLS_DC) +int dom_nodelist_length_read(dom_object *obj, zval *retval TSRMLS_DC) { dom_nnodemap_object *objmap; xmlNodePtr nodep, curnode; @@ -91,8 +91,7 @@ int dom_nodelist_length_read(dom_object *obj, zval **retval TSRMLS_DC) } } - MAKE_STD_ZVAL(*retval); - ZVAL_LONG(*retval, count); + ZVAL_LONG(retval, count); return SUCCESS; } @@ -113,15 +112,13 @@ PHP_FUNCTION(dom_nodelist_item) dom_nnodemap_object *objmap; xmlNodePtr nodep, curnode; int count = 0; - HashTable *nodeht; - zval **entry; if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &id, dom_nodelist_class_entry, &index) == FAILURE) { return; } if (index >= 0) { - intern = (dom_object *)zend_object_store_get_object(id TSRMLS_CC); + intern = Z_DOMOBJ_P(id); objmap = (dom_nnodemap_object *)intern->ptr; if (objmap != NULL) { @@ -133,10 +130,10 @@ PHP_FUNCTION(dom_nodelist_item) } } else { if (objmap->nodetype == DOM_NODESET) { - nodeht = HASH_OF(objmap->baseobjptr); - if (zend_hash_index_find(nodeht, index, (void **) &entry)==SUCCESS) { - *return_value = **entry; - zval_copy_ctor(return_value); + HashTable *nodeht = HASH_OF(objmap->baseobjptr); + zval *entry = zend_hash_index_find(nodeht, index); + if (entry) { + ZVAL_COPY(return_value, entry); return; } } else if (objmap->baseobj) { |