I guess I'm suffering from some tl;dr here. Here's the short version:
please apply the attached patch to the 5.3 branch. It removes some
code which is broken and unnecessary.
Index: Zend/zend_execute_API.c
===================================================================
--- Zend/zend_execute_API.c (revision 309263)
+++ Zend/zend_execute_API.c (working copy)
@@ -207,24 +207,9 @@
}
/* }}} */
-static int zval_call_destructor(zval **zv TSRMLS_DC) /* {{{ */
-{
- if (Z_TYPE_PP(zv) == IS_OBJECT && Z_REFCOUNT_PP(zv) == 1) {
- return ZEND_HASH_APPLY_REMOVE;
- } else {
- return ZEND_HASH_APPLY_KEEP;
- }
-}
-/* }}} */
-
void shutdown_destructors(TSRMLS_D) /* {{{ */
{
zend_try {
- int symbols;
- do {
- symbols = zend_hash_num_elements(&EG(symbol_table));
- zend_hash_reverse_apply(&EG(symbol_table), (apply_func_t) zval_call_destructor TSRMLS_CC);
- } while (symbols != zend_hash_num_elements(&EG(symbol_table)));
zend_objects_store_call_destructors(&EG(objects_store) TSRMLS_CC);
} zend_catch {
/* if we couldn't destruct cleanly, mark all objects as destructed anyway */
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php