New commits:
http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=09d955f57f32ea37659e2581b5a65083a491372a
commit 09d955f57f32ea37659e2581b5a65083a491372a
Author: Ville Syrjala <[EMAIL PROTECTED]>
Date: Tue Mar 11 02:41:07 2008 +0200
surface core: Fix a potential problem with deallocating buffers.
dfb_surface_buffer_lock() walks the buffer allocations with
fusion_vector_foreach (alloc, i, buffer->allocs) and if it doesn't
find a suitable allocation it will allocate one. It then tests
alloc against NULL in the error paths to determine if the
allocation was performed. If there are only unsuitable allocations
alloc will not be NULL even though a new allocation was made.
So use other means to keep track if allocation was made.
In the name of keeping the code more readable give
dfb_surface_buffer_write() the same treatment even though it's
not actually necessary there.
src/core/surface_buffer.c | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=b87ffb68bbe9616f7ffac47527ed14688afbe0e1
commit b87ffb68bbe9616f7ffac47527ed14688afbe0e1
Author: Ville Syrjala <[EMAIL PROTECTED]>
Date: Mon Sep 17 22:21:52 2007 +0300
Don't access FusionVector members directly.
Surface core seems to test FusionVector::elements against NULL to
determine if the vector is empty. That won't work when the vector has
contained some data but has since become empty (since elements is not
deallocated/set to NULL). AFAICS that could happen eg. when
dfb_surface_buffer_write() would do the first allocation and
update_allocation() would then fail which would lead to deallocation in
the error path. The next dfb_surface_buffer_write() would then fail
to detect that there are no allocations and would not try to make a new
allocation.
There are several other places where FusionVector members are accessed
directly. AFAICS nothing that could cause bugs but I decided to clean
them up at the same time.
src/core/surface_buffer.c | 4 ++--
src/core/surface_pool.c | 2 +-
systems/fbdev/fbdev_surface_pool.c | 2 +-
tools/dfbdump.c | 2 +-
wm/default/default.c | 8 ++++----
wm/unique/stret_iteration.c | 10 +++++-----
wm/unique/window.c | 8 ++++----
7 files changed, 18 insertions(+), 18 deletions(-)
http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=f7347b8897ab3c74198bedb324277eae5d587316
commit f7347b8897ab3c74198bedb324277eae5d587316
Author: Ville Syrjala <[EMAIL PROTECTED]>
Date: Tue Mar 11 18:11:04 2008 +0200
dfbinfo: Show min/max keycodes.
tools/dfbinfo.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=6c4e325a0443ba906505bd2a731589d425bca5a7
commit 6c4e325a0443ba906505bd2a731589d425bca5a7
Author: Ville Syrjala <[EMAIL PROTECTED]>
Date: Tue Mar 11 18:12:51 2008 +0200
fbdev: Eliminate floats.
systems/fbdev/fbdev.c | 30 ++++++++++++++----------------
1 files changed, 14 insertions(+), 16 deletions(-)
http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=6f5acb1d9f8f1cf64eb8c09f7416c7b993544fcd
commit 6f5acb1d9f8f1cf64eb8c09f7416c7b993544fcd
Author: Ville Syrjala <[EMAIL PROTECTED]>
Date: Tue Mar 11 18:12:40 2008 +0200
fbdev: Use CLAMP().
systems/fbdev/fbdev.c | 33 ++++++++++-----------------------
1 files changed, 10 insertions(+), 23 deletions(-)
http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=61544e20b2dfbb099e4b62bab12418caecadbc82
commit 61544e20b2dfbb099e4b62bab12418caecadbc82
Author: Ville Syrjala <[EMAIL PROTECTED]>
Date: Tue Mar 11 18:14:47 2008 +0200
jpeg: Use #ifdef WORDS_BIGENDIAN instead of #if WORDS_BIGENDIAN
.../idirectfbimageprovider_jpeg.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=d9faf26c2bf1b321e288271b0520261a40adb533
commit d9faf26c2bf1b321e288271b0520261a40adb533
Author: Claudio Ciccani <[EMAIL PROTECTED]>
Date: Tue Mar 11 12:21:59 2008 +0100
[fusion] Added fusion_world_get_fork_action() and
fusion_world_set_fork_callback().
fusion_world_set_fork_callback() allows to register a callback called during
the different states of fork() (prepare, parent, child) and before the
actual fork
action is performed. Useful to free local resources when fork action is
FFA_CLOSE.
lib/fusion/fusion.c | 99 +++++++++++++++++++++++++++++++++++++++++-
lib/fusion/fusion.h | 19 ++++++++
lib/fusion/fusion_internal.h | 1 +
3 files changed, 118 insertions(+), 1 deletions(-)
_______________________________________________
directfb-cvs mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-cvs