From: George Schlossnagle Date: Wed, 24 Mar 2004 05:04:26 +0000 (+0000) Subject: fixed non-existent elements check X-Git-Tag: php-5.0.0RC2RC1~250 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b9c04fe19a1355ed7c25f62fa42035089f4a569e;p=php fixed non-existent elements check ref: http://news.php.net/article.php?group=php.internals&article=8660 --- diff --git a/ext/simplexml/simplexml.c b/ext/simplexml/simplexml.c index c6f064f6bb..3fd0f2516a 100644 --- a/ext/simplexml/simplexml.c +++ b/ext/simplexml/simplexml.c @@ -511,7 +511,23 @@ static int sxe_prop_dim_exists(zval *object, zval *member, int check_empty, zend } node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node); } - + else { + if (Z_TYPE_P(member) != IS_STRING) { + zval tmp_zv = *member; + zval_copy_ctor(&tmp_zv); + member = &tmp_zv; + convert_to_string(member); + } + node = node->children; + while (node) { + xmlNodePtr nnext; + nnext = node->next; + if (!xmlStrcmp(node->name, Z_STRVAL_P(member))) { + break; + } + node = nnext; + } + } if (node) { exists = 1; }