From 52d3f075ea5d5bdac0e874a7d9de8eec074bd9bd Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sun, 22 Nov 2015 23:31:51 +0000 Subject: [PATCH] Fix over shift left undefined behaviour. The maximum zoom level is now >= 8, so shifting a uint8 by a zoom level results in undefined behaviour. --- src/spritecache.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/spritecache.cpp b/src/spritecache.cpp index e9ab6b7538..6fd7e6e8c8 100644 --- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -269,7 +269,7 @@ static bool PadSingleSprite(SpriteLoader::Sprite *sprite, ZoomLevel zoom, uint p return true; } -static bool PadSprites(SpriteLoader::Sprite *sprite, uint8 sprite_avail) +static bool PadSprites(SpriteLoader::Sprite *sprite, unsigned int sprite_avail) { /* Get minimum top left corner coordinates. */ int min_xoffs = INT32_MAX; @@ -310,7 +310,7 @@ static bool PadSprites(SpriteLoader::Sprite *sprite, uint8 sprite_avail) return true; } -static bool ResizeSprites(SpriteLoader::Sprite *sprite, uint8 sprite_avail, uint32 file_slot, uint32 file_pos) +static bool ResizeSprites(SpriteLoader::Sprite *sprite, unsigned int sprite_avail, uint32 file_slot, uint32 file_pos) { /* Create a fully zoomed image if it does not exist */ ZoomLevel first_avail = static_cast(FIND_FIRST_BIT(sprite_avail));