Making changes to PG() (php_core_globals)

From: Date: Wed, 05 Jul 2006 11:41:44 +0000
Subject: Making changes to PG() (php_core_globals)
Groups: php.internals 
Request: Send a blank email to internals+get-24275@lists.php.net to get a copy of this message
The subject line gives a pretty good idea what this question is about. Yes, I'm well aware of the dangers of making core changes, and I'm only doing it to give myself a better idea what's going on inside :). In any case, here's the problem... One of the changes I tried to make is changing the type of the track_errors setting from zend_bool to long. It seems like a simple enough change: change the type in php_globals.h, update the INI setting in main.c, update the actual usage of the var in main.c, update my local INI file to use an integer value. But as soon as I did this, my test build started showing leaks from php_hash_environment() and a crash in php_module_shutdown()-
php_shutdown_ticks()->zend_llist_destroy(). My only guess as to why it was happening is that I didn't change a type or expected size somewhere, but for the life of me I can't figure out where my mistake was; I haven't seen a harcoded size where sizeof() should be or anything like that, after poring through main.c, php_variables.c, zend_globals.h, php_globals.h, and the like.
I've reverted my source, but I'd still like to know: What did I miss? TSRM was on (--enable-maintainer-zts), as was --enable-debug, if that helps. I didn't try it without TSRM; if I can't do it thread-safely, then I'm not doing it right regardless. -- Gwynne, Daughter of the Code "This whole world is an asylum for the incurable."

« previous php.internals (#24275) next »