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