From: Marcus Boerger Date: Sat, 1 Oct 2005 15:41:37 +0000 (+0000) Subject: - Allow xpl/simplexml integration with simplexml being built shared X-Git-Tag: php-5.1.0RC2~141 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=69722777a032531c63046d2c4daeb95478e1d857;p=php - Allow xpl/simplexml integration with simplexml being built shared --- diff --git a/ext/simplexml/config.m4 b/ext/simplexml/config.m4 index e498350466..7bc864409e 100644 --- a/ext/simplexml/config.m4 +++ b/ext/simplexml/config.m4 @@ -23,4 +23,5 @@ if test "$PHP_SIMPLEXML" != "no"; then AC_MSG_ERROR([xml2-config not found. Please check your libxml2 installation.]) ]) PHP_ADD_EXTENSION_DEP(simplexml, libxml) + PHP_ADD_EXTENSION_DEP(simplexml, spl, true) fi diff --git a/ext/spl/spl_sxe.c b/ext/spl/spl_sxe.c index 463f7cad1b..5a2cd7e72c 100755 --- a/ext/spl/spl_sxe.c +++ b/ext/spl/spl_sxe.c @@ -146,13 +146,16 @@ static zend_function_entry spl_funcs_SimpleXMLIterator[] = { SPL_API PHP_MINIT_FUNCTION(spl_sxe) /* {{{ */ { - zend_class_entry *spl_ce_SimpleXML_Element = sxe_get_element_class_entry(); - - if (!spl_ce_SimpleXML_Element) { + zend_class_entry **pce, *spl_ce_SimpleXMLElement; + + if (zend_hash_find(CG(class_table), "simplexmlelement", sizeof("SimpleXMLElement"), (void **) &pce) == FAILURE) { + spl_ce_SimpleXMLIterator = NULL; return SUCCESS; /* SimpleXML must be initialized before */ } + + spl_ce_SimpleXMLElement = *pce; - REGISTER_SPL_SUB_CLASS_EX(SimpleXMLIterator, SimpleXML_Element, sxe_object_new, spl_funcs_SimpleXMLIterator); + REGISTER_SPL_SUB_CLASS_EX(SimpleXMLIterator, SimpleXMLElement, sxe_object_new, spl_funcs_SimpleXMLIterator); REGISTER_SPL_IMPLEMENTS(SimpleXMLIterator, RecursiveIterator); return SUCCESS;