im sorry i dont have a diff (my build environment is sensitive at the
moment), but there is a segfault initializing an internal namespace.
simplest reproducing C code is :
void php_I18N_register_namespace(TSRMLS_DC)
{
zend_namespace temp_ns;
temp_ns.name = MODULE_NAMESPACE;
temp_ns.name_length = strlen(MODULE_NAMESPACE);
i18n_ns = zend_register_internal_namespace(&temp_ns TSRMLS_CC);
}
</code>
the problem is that the ns->builtin_functions table is not properly
initialized in zend_init_namespace, so a subsequent call to
<code>
if (ns->builtin_functions) {
zend_register_functions(ns, ns->builtin_functions, &ns->function_table,
MODULE_PERSISTENT TSRMLS_CC);
}
</code>
causes the code to crash.
l0t3k
At 08:20 20.05.2003, l0t3k wrote:
the problem is that the ns->builtin_functions table is not properly
NO, the problem is on your side. Look at the following code snippet from SPL:
void spl_register_namespace(zend_namespace ** ppns, char *
namespace_name TSRMLS_DC)
{
zend_namespace ns;
INIT_NAMESPACE(ns, namespace_name);
*ppns = zend_register_internal_namespace(&ns TSRMLS_CC);
}
As you can see the macro INIT_NAMESPACE is needed.
regards
marcus