On Thu, 19 Apr 2007 19:16:36 +0200 Sebastian Dransfeld
<[EMAIL PROTECTED]> babbled:

almost - patch wise this is close. you likely need a counter so recursive
callbacks do the right thing. :) (i.e only do the deferred free once the
counter hits 0, and increment counter when you start walking a list, decrement
after finishing the walk)

> [EMAIL PROTECTED] wrote:
> >     Brian wrote:
> > 
> >> After some more digging, here's what I've come up with:
> >>
> >>  * When you hit enter, the button widget is 'activated'
> >>  * e_widget_activate() calls the No buttons callback, which
> >>    deletes the dialog
> >>  * this frees the evas, which frees its layers, which frees
> >>    its objects, which happens to set obj->callbacks to NULL
> >>  * e is still looping through its callbacks at this point,
> >>    and segfaults
> >>  * the NULL check in the aforementioned patch happens to work,
> >>    but only by luck (the object pointer its accessing is now
> >>    invalid).
> >>
> >> So, should we require that evas callbacks not free their evas?
> >> (E.g. force them to schedule a free and then actually do it
> >> outside of any callbacks)
> >>
> >> Or, should we alter evas to defer evas frees while walking
> >> an object's callbacks?
> > 
> >     Ummm... this is really more raster's domain of intimacy :)
> > but I'd say that an evas obj's callback shouldn't free an evas
> > (wether the one it's in or any other), but the latter possibility
> > sounds like it could be reasonable as well.. I'd have to look at
> > this in more detail to give any real suggestion on my part though.
> 
> It will be damn hard to prevent an evas event to kill itself.
> 
> Anyway, this patch works. Please review.
> 
> Sebastian
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    [EMAIL PROTECTED]
裸好多
Tokyo, Japan (東京 日本)

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to