Hi all,

When I run some program based on directfb(version 1.4.3), it will print
some error:
*** glibc detected *** launcher: double free or corruption (!prev):
0x005636e8 ***

And I try to track the issue, I found two function will to free same
address in "local_surface_pool.c", one function is
"local_surface_pool_call_handler", and another is "localLeavePool",.
 I have two processes which both based on qt, and qt will use the plugin to
use directfb. When I switch from this two process(quit A to B, and then
quit B to A, and then quit A to B again ... ) frequently , the "double
free" issue will occur. When quit A process or B process, the qt library
will release the resource relevant to directfb, include surface, layer,
screen and dfb. When release dfb, I found the dfb->Release(dfb) will free
the buffer of surface, It will call 'localLeavePool' to free the buffer of
surface, but I don't know why or when to call
"local_surface_pool_call_handler", it may because some object's reference
is zero. And this will free the same buffer with 'localLeavePool '. I am
trying to track the directfb source code with git, but I cann't find any
commit about this issue.

And sometimes the error message is:
glibc detected  launcher: corrupted double-linked list ....

BTW, I use the fbdev system, launcher is my program's name.

Thanks in advanced.

Andy
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to