On Mon, Oct 28, 2002 at 05:49:44PM -0800, Zeev Suraski wrote: > At 07:35 28/10/2002, Thies C. Arntzen wrote: > >On Mon, Oct 28, 2002 at 05:24:38PM +0200, Stanislav Malyshev wrote: > >> TCA>> but zval_ptr_dtor (used in assert.c-OnChangeCallback) checks > >> TCA>> against EG(uninitialized_zval_ptr) - so calling zval_ptr_dtor > >> TCA>> anytime before init_executor will cause an UMR. > >> > >> Actually, zval_ptr_dtor calls zval_dtor, which does much more EG(...) > >> games than just EG(uninitialized_zval_ptr). So I guess calling > >> zval_ptr_dtor before init_executor is unwise indeed... > > > > yep - but can we simply move init_executor a bit "up"? > > Probably not. Can you simply fix the OnChange callback? :) NULL up the > ASSERTG(callback) on time?
it is(!) nulled in the globals_ctor. the problem is that the OnChange gets called quite a few times (tested in cli-mode). and the 2nd call will dtor the "empty" value set by the 1st call. also i don't really think that assert.c is the deal here, the real problem is that we might use parts of the engine "too" early in many places in the code that i haven't spotted so far. (and it's a _very_ hard to find thing - i found it using valgrind) re, tc > > Zeev -- Thies C. Arntzen - Looking for all sorts of freelance work - just ask.. http://www.amazon.de/exec/obidos/wishlist/AB9DY62QWDSZ -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php