diff options
author | Nikita Popov <nikic@php.net> | 2014-04-15 20:30:41 +0200 |
---|---|---|
committer | Nikita Popov <nikic@php.net> | 2014-04-15 20:32:47 +0200 |
commit | 3b9fdf37e109102c5811fa7698e6ef2e00f09e24 (patch) | |
tree | 186c9aa67cc2712a37d84efe4bd87cb864dff133 /ext/dom/dom_iterators.c | |
parent | 7a1a6092f652f1c322e3a09f9fb1491775fb4072 (diff) | |
download | php-git-3b9fdf37e109102c5811fa7698e6ef2e00f09e24.tar.gz |
Make DOM compile
Just make it compile, not work yet...
Diffstat (limited to 'ext/dom/dom_iterators.c')
-rw-r--r-- | ext/dom/dom_iterators.c | 54 |
1 files changed, 26 insertions, 28 deletions
diff --git a/ext/dom/dom_iterators.c b/ext/dom/dom_iterators.c index 987d54de25..c977280b76 100644 --- a/ext/dom/dom_iterators.c +++ b/ext/dom/dom_iterators.c @@ -126,10 +126,10 @@ static void php_dom_iterator_dtor(zend_object_iterator *iter TSRMLS_DC) /* {{{ * { php_dom_iterator *iterator = (php_dom_iterator *)iter; - zval_ptr_dtor((zval**)&iterator->intern.data); + zval_ptr_dtor(&iterator->intern.data); if (iterator->curobj) { - zval_ptr_dtor((zval**)&iterator->curobj); + zval_ptr_dtor(&iterator->curobj); } efree(iterator); @@ -149,27 +149,27 @@ static int php_dom_iterator_valid(zend_object_iterator *iter TSRMLS_DC) /* {{{ * } /* }}} */ -static void php_dom_iterator_current_data(zend_object_iterator *iter, zval ***data TSRMLS_DC) /* {{{ */ +zval *php_dom_iterator_current_data(zend_object_iterator *iter TSRMLS_DC) /* {{{ */ { php_dom_iterator *iterator = (php_dom_iterator *)iter; - *data = &iterator->curobj; + return iterator->curobj; } /* }}} */ static void php_dom_iterator_current_key(zend_object_iterator *iter, zval *key TSRMLS_DC) /* {{{ */ { php_dom_iterator *iterator = (php_dom_iterator *)iter; - zval *object = (zval *)iterator->intern.data; + zval *object = &iterator->intern.data; if (instanceof_function(Z_OBJCE_P(object), dom_nodelist_class_entry TSRMLS_CC)) { ZVAL_LONG(key, iter->index); } else { - dom_object *intern = (dom_object *)zend_object_store_get_object(iterator->curobj TSRMLS_CC); + dom_object *intern = Z_DOMOBJ_P(iterator->curobj); if (intern != NULL && intern->ptr != NULL) { xmlNodePtr curnode = (xmlNodePtr)((php_libxml_node_ptr *)intern->ptr)->node; - ZVAL_STRINGL(key, (char *) curnode->name, xmlStrlen(curnode->name), 1); + ZVAL_STRINGL(key, (char *) curnode->name, xmlStrlen(curnode->name)); } else { ZVAL_NULL(key); } @@ -185,27 +185,28 @@ static void php_dom_iterator_move_forward(zend_object_iterator *iter TSRMLS_DC) dom_object *intern; dom_object *nnmap; dom_nnodemap_object *objmap; - int ret, previndex=0; + int previndex=0; HashTable *nodeht; - zval **entry; + zval *entry; php_dom_iterator *iterator = (php_dom_iterator *)iter; - object = (zval *)iterator->intern.data; - nnmap = (dom_object *)zend_object_store_get_object(object TSRMLS_CC); + object = &iterator->intern.data; + nnmap = Z_DOMOBJ_P(object); objmap = (dom_nnodemap_object *)nnmap->ptr; curobj = iterator->curobj; - intern = (dom_object *)zend_object_store_get_object(curobj TSRMLS_CC); + intern = Z_DOMOBJ_P(curobj); if (intern != NULL && intern->ptr != NULL) { if (objmap->nodetype != XML_ENTITY_NODE && objmap->nodetype != XML_NOTATION_NODE) { if (objmap->nodetype == DOM_NODESET) { nodeht = HASH_OF(objmap->baseobjptr); zend_hash_move_forward(nodeht); - if (zend_hash_get_current_data(nodeht, (void **) &entry)==SUCCESS) { - curattr = *entry; - Z_ADDREF_P(curattr); + if ((entry = zend_hash_get_current_data(nodeht))) { + //??? + curattr = entry; + if (Z_REFCOUNTED_P(curattr)) Z_ADDREF_P(curattr); } } else { curnode = (xmlNodePtr)((php_libxml_node_ptr *)intern->ptr)->node; @@ -235,10 +236,9 @@ static void php_dom_iterator_move_forward(zend_object_iterator *iter TSRMLS_DC) } } err: - zval_ptr_dtor((zval**)&curobj); + zval_ptr_dtor(curobj); if (curnode) { - MAKE_STD_ZVAL(curattr); - curattr = php_dom_create_object(curnode, &ret, curattr, objmap->baseobj TSRMLS_CC); + php_dom_create_object(curnode, curattr, objmap->baseobj TSRMLS_CC); } iterator->curobj = curattr; @@ -260,9 +260,9 @@ zend_object_iterator *php_dom_get_iterator(zend_class_entry *ce, zval *object, i dom_nnodemap_object *objmap; xmlNodePtr nodep, curnode=NULL; zval *curattr = NULL; - int ret, curindex = 0; + int curindex = 0; HashTable *nodeht; - zval **entry; + zval *entry; php_dom_iterator *iterator; if (by_ref) { @@ -270,11 +270,10 @@ zend_object_iterator *php_dom_get_iterator(zend_class_entry *ce, zval *object, i } iterator = emalloc(sizeof(php_dom_iterator)); - Z_ADDREF_P(object); - iterator->intern.data = (void*)object; + ZVAL_COPY(&iterator->intern.data, object); iterator->intern.funcs = &php_dom_iterator_funcs; - intern = (dom_object *)zend_object_store_get_object(object TSRMLS_CC); + intern = Z_DOMOBJ_P(object); objmap = (dom_nnodemap_object *)intern->ptr; if (objmap != NULL) { if (objmap->nodetype != XML_ENTITY_NODE && @@ -282,9 +281,9 @@ zend_object_iterator *php_dom_get_iterator(zend_class_entry *ce, zval *object, i if (objmap->nodetype == DOM_NODESET) { nodeht = HASH_OF(objmap->baseobjptr); zend_hash_internal_pointer_reset(nodeht); - if (zend_hash_get_current_data(nodeht, (void **) &entry)==SUCCESS) { - curattr = *entry; - Z_ADDREF_P(curattr); + if ((entry = zend_hash_get_current_data(nodeht))) { + curattr = entry; + if (Z_REFCOUNTED_P(curattr)) Z_ADDREF_P(curattr); } } else { nodep = (xmlNode *)dom_object_get_node(objmap->baseobj); @@ -316,8 +315,7 @@ zend_object_iterator *php_dom_get_iterator(zend_class_entry *ce, zval *object, i } err: if (curnode) { - MAKE_STD_ZVAL(curattr); - curattr = php_dom_create_object(curnode, &ret, curattr, objmap->baseobj TSRMLS_CC); + php_dom_create_object(curnode, curattr, objmap->baseobj TSRMLS_CC); } iterator->curobj = curattr; |