Proper fix for .cur loading bug

This commit is contained in:
rdb 2010-12-26 11:52:12 +00:00
parent 3ca1f47ea1
commit b4508cbc99

View File

@ -2044,14 +2044,12 @@ read_ico(istream &ico) {
if (infoHeader.compression != 0) goto cleanup;
// Load the color palette, if one exists.
colorCount = entries[entry].colorCount == 0 ? 256 : entries[entry].colorCount;
// FIXME: this is probably not a proper fix:
if (bitsPerPixel == 1) {
colorCount = 2;
if (bitsPerPixel != 24 && bitsPerPixel != 32) {
colorCount = 1 << bitsPerPixel;
palette = new IcoColor[colorCount];
ico.read(reinterpret_cast<char *>(palette), colorCount * sizeof(IcoColor));
if (!ico.good()) goto cleanup;
}
palette = new IcoColor[colorCount];
if (bitsPerPixel <= 8) ico.read(reinterpret_cast<char *>(palette), colorCount * sizeof(IcoColor));
if (!ico.good()) goto cleanup;
// Read in the pixel data.
xorBmpSize = (infoHeader.width * (infoHeader.height / 2) * bitsPerPixel) / 8;