Dmitry, have you _any_ idea why this might fix my CG table-freeing crash?

It still gets past the != check, so presumably it still does the same destroy-and-free - but it works now?!

- Steph
Index: Zend/zend.c
===================================================================
RCS file: /repository/ZendEngine2/zend.c,v
retrieving revision 1.308.2.12.2.8
diff -u -r1.308.2.12.2.8 zend.c
--- Zend/zend.c 19 May 2006 06:09:14 -0000      1.308.2.12.2.8
+++ Zend/zend.c 2 Jun 2006 06:26:41 -0000
@@ -462,15 +462,15 @@

static void compiler_globals_dtor(zend_compiler_globals *compiler_globals 
TSRMLS_DC)
{
-       if (compiler_globals->function_table != GLOBAL_FUNCTION_TABLE) {
+       if (GLOBAL_FUNCTION_TABLE && (compiler_globals->function_table != 
GLOBAL_FUNCTION_TABLE)) {
                zend_hash_destroy(compiler_globals->function_table);
                free(compiler_globals->function_table);
        }
-       if (compiler_globals->class_table != GLOBAL_CLASS_TABLE) {
+       if (GLOBAL_CLASS_TABLE && (compiler_globals->class_table != 
GLOBAL_CLASS_TABLE)) {
                zend_hash_destroy(compiler_globals->class_table);
                free(compiler_globals->class_table);
        }
-       if (compiler_globals->auto_globals != GLOBAL_AUTO_GLOBALS_TABLE) {
+       if (GLOBAL_AUTO_GLOBALS_TABLE && (compiler_globals->auto_globals != 
GLOBAL_AUTO_GLOBALS_TABLE)) {
                zend_hash_destroy(compiler_globals->auto_globals);
                free(compiler_globals->auto_globals);
        }

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

Reply via email to