On Mar 23, 2004, at 11:21 PM, Adam Maccabee Trachtenberg wrote:


On Tue, 23 Mar 2004, Rasmus Lerdorf wrote:

they are all in sync. For example, Derek Ford's simplexml-related message
to internals last week(*) worries me somewhat. He passed on what looks to
be some basic brokeness in the extension which nobody has addressed so
far.


(*) http://news.php.net/article.php?group=php.internals&article=8660

Here's my take on these issues:


1: You can't tell if an element exists or not


OK. So I haven't really looked at this code before, but a cursory inspection leads me to believe that sxe_prop_dim_exists() doesn't work right at all for elements.


When you come in testing for the existence of $obj->element, node is set to the xmlNodePtr for $obj (which exists of course). Then you fall into this case:

if (elements) {
if (Z_TYPE_P(member) == IS_LONG) {
if (sxe->iter.type == SXE_ITER_CHILD) {
node = php_sxe_get_first_node(sxe, node TSRMLS_CC);
}
node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node);
}


            if (node) {
                exists = 1;
            }
        }


I don't see where this actually looks up 'element', it seems like it simply evaluates the existence of node. I committed a fix, but someone who knows the code better should validate that it is correct.


--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to