On 12/17/05, Denis Oliver Kropp <[EMAIL PROTECTED]> wrote: > Mike Emmel wrote: > > On 12/16/05, Denis Oliver Kropp <[EMAIL PROTECTED]> wrote: > > > >>Mike Emmel wrote: > >> > >>>Here is a patch to list.h the reason I have is that for input only > >>>windows that have no surfaces it no one ever registers to recieve > >>>events so there is no queue. I did not check it in since its a change > >>>to the core. I think in general its harmless and seems to be the right > >>>thing. > >> > >>I think it should be the opposite, having a "D_ASSERT( *list != NULL )", > >>because trying to remove an element from an empty list indicates bad code. > >> > >>But I'm wondering why this happens in this case. > >> > > > > > > I traced it back basically window->Destroy is a very dangerous call > > and eventually leads to a crash by changing to a Release I was able to > > get it to correctly send all the events after the window closed. > > Probably Destroy should be changed to just call Release. > > Destroy() explicitly frees the window's resources like its surface, > while Release() only decrements the ref counter. If the ref counter > gets zero, the resources are freed implicitly. > > I think Destroy() should be fixed. > I agree is a very dangerous function. At the min it should wait till all events are sent before blowing away the window. Its could internally release the reference count till it gets to zero maybe ? Anyway I think you see the problem with it. Mike
> -- > Best regards, > Denis Oliver Kropp > > .------------------------------------------. > | DirectFB - Hardware accelerated graphics | > | http://www.directfb.org/ | > "------------------------------------------" > _______________________________________________ directfb-dev mailing list [email protected] http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev
