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.

--
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

Reply via email to