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.
Mike
> >
> > Index: list.h
> > ===================================================================
> > RCS file: /cvs/directfb/DirectFB/lib/direct/list.h,v
> > retrieving revision 1.6
> > diff -u -r1.6 list.h
> > --- list.h 18 Aug 2005 11:13:43 -0000 1.6
> > +++ list.h 20 Nov 2005 22:35:19 -0000
> > @@ -124,6 +124,8 @@
> > static inline void
> > direct_list_remove( DirectLink **list, DirectLink *link )
> > {
> > + if( *list == NULL)
> > + return;
> > DirectLink *next;
> > DirectLink *prev;
> >
> >
> >
> > And here is the trace the window is input only
> > #0 0x0013121f in direct_list_remove (list=0x8e30c80, link=0x8e30de4)
> > at ../../lib/direct/list.h:144
> > #1 0x001313e5 in fusion_reactor_dispatch (reactor=0x8e30c80,
> > msg_data=0xbfbcd574, self=true, globals=0xf6a31c) at reactor.c:949
> > #2 0x00f62847 in dfb_window_dispatch (object=0x8e30b80, message=0xbfbcd574,
> > globals=0xf6a31c) at ../../src/core/windows.h:101
> > #3 0x00f62818 in dfb_window_post_event (window=0x8e30b80, event=0xbfbcd574)
> > at windows.c:1111
> > #4 0x00f61c63 in dfb_window_destroy (window=0x8e30b80) at windows.c:534
> > #5 0x00f2a33f in IDirectFBWindow_Destroy (thiz=0x8e30d28)
> > at idirectfbwindow.c:777
> > #6 0x0017f74c in _gdk_windowing_window_destroy (window=0x8e8e278,
> > recursing=0, foreign_destroy=0) at gdkwindow-directfb.c:526
> > #7 0x001725b1 in _gdk_window_destroy_hierarchy (window=0x8e8e278,
> > recursing=0, foreign_destroy=0) at gdkwindow.c:420
> > #8 0x001726b7 in IA__gdk_window_destroy (window=0x8e8e278) at
> > gdkwindow.c:469
>
> --
> 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