ts_free_id() would be a correct workaround if it came from
zend_shutdown().
How's it right to suddenly force EVERY extension author to add it to
their
code individually?
This was only reqiured in extensions registering custom dtor's like tidy
and printer.
Unfortunately that's not true. It's also required in the php-gtk module even
though we don't declare a dtor - the DL_UNLOAD call is the first thing in
the shutdown process, and if you _don't_ have free_ts_id() in MSHUTDOWN at
present you'll be freeing the resource after the module's unloaded.
DL_UNLOAD is called on anything loaded via dl() or the php.ini....
This isn't our only problem though - the GLOBAL_CLASS_TABLE is being
destroyed during CG dtor because it doesn't match the current
CG->global_class_table. Because the CG dtor is run after the PHP-GTK module
is unloaded, destroying that class table crashes the shutdown process.
I've no idea why or how GTK classes end up in the CG global class table, but
I guess that's what happening here. Any offers?
- Steph
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php