aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpieterg <pieterg@users.sourceforge.net>2011-01-13 00:30:13 +0100
committerAndreas Oberritter <obi@opendreambox.org>2011-01-13 01:09:40 +0100
commit574863ec8d43671a8fd8f9adcdadb77a75d8ce24 (patch)
tree5faba26fae211a275a143e53bd52e0351de74d13
parente66c53dd065aec5f9aca27ab45dc9e4f6fdc211e (diff)
downloadenigma2-574863ec8d43671a8fd8f9adcdadb77a75d8ce24.tar.gz
enigma2-574863ec8d43671a8fd8f9adcdadb77a75d8ce24.zip
bcm accelerated blit: avoid running out of clut data
We were passing a hardcoded number of 256 entries to the framebuffer, while the source surface could have a smaller color lookup table. For instance, most dvb subtitle graphics have a palette of only 16 colors. This would cause frequent segfaults.
-rw-r--r--lib/gdi/accel.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/gdi/accel.cpp b/lib/gdi/accel.cpp
index 9450ecca..fc739e92 100644
--- a/lib/gdi/accel.cpp
+++ b/lib/gdi/accel.cpp
@@ -112,7 +112,7 @@ int gAccel::blit(gSurface *dst, const gSurface *src, const eRect &p, const eRect
pal_addr = src->stride * src->y;
unsigned long *pal = (unsigned long*)(((unsigned char*)src->data) + pal_addr);
pal_addr += src->data_phys;
- for (i = 0; i < 256; ++i)
+ for (i = 0; i < src->clut.colors; ++i)
*pal++ = src->clut.data[i].argb() ^ 0xFF000000;
} else
return -1; /* unsupported source format */