New commits:
http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=6cc35d5d1d0bc2a1a5129aa7e0f6c312d0e2aada
commit 6cc35d5d1d0bc2a1a5129aa7e0f6c312d0e2aada
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=db3a591846f12c1b284a71e2d2346c45d94a85a0
commit db3a591846f12c1b284a71e2d2346c45d94a85a0
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=9f693ab58d17a4a3cb235956a2b754d0122dc2b2
commit 9f693ab58d17a4a3cb235956a2b754d0122dc2b2
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=cb71d1da5ac1f31d70404de4bfcf62cd62faf2f0
commit cb71d1da5ac1f31d70404de4bfcf62cd62faf2f0
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=45db5ded04afcaa4a015efd9670d57f2fe5f4eac
commit 45db5ded04afcaa4a015efd9670d57f2fe5f4eac
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=9a3abe8781628d994f7ecf7bab3b49b61d259834
commit 9a3abe8781628d994f7ecf7bab3b49b61d259834
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(-)
_______________________________________________
directfb-cvs mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-cvs