diff options
| author | pieterg <pieterg@users.sourceforge.net> | 2011-01-13 00:30:13 +0100 |
|---|---|---|
| committer | Andreas Oberritter <obi@opendreambox.org> | 2011-01-13 01:09:40 +0100 |
| commit | 574863ec8d43671a8fd8f9adcdadb77a75d8ce24 (patch) | |
| tree | 5faba26fae211a275a143e53bd52e0351de74d13 /lib/gdi/accel.cpp | |
| parent | e66c53dd065aec5f9aca27ab45dc9e4f6fdc211e (diff) | |
| download | enigma2-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.
Diffstat (limited to 'lib/gdi/accel.cpp')
| -rw-r--r-- | lib/gdi/accel.cpp | 2 |
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 */ |
