1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:57:35 +00:00

Bitmap: Don't call Bitmap::create with width/height equal to 0

With very small bitmaps and small scale factor, such as tile.png, the
type conversion in the call to Bitmap:create would cause width or
height to be 0.

Fixes #7352
This commit is contained in:
Marcus Nilsson 2021-05-22 00:45:32 +02:00 committed by Andreas Kling
parent 1ae18c1228
commit ee48dac300

View file

@ -427,7 +427,10 @@ RefPtr<Gfx::Bitmap> Bitmap::scaled(float sx, float sy) const
if (floorf(sx) == sx && floorf(sy) == sy)
return scaled(static_cast<int>(sx), static_cast<int>(sy));
auto new_bitmap = Gfx::Bitmap::create(format(), { width() * sx, height() * sy }, scale());
int scaled_width = (int)ceilf(sx * (float)width());
int scaled_height = (int)ceilf(sy * (float)height());
auto new_bitmap = Gfx::Bitmap::create(format(), { scaled_width, scaled_height }, scale());
if (!new_bitmap)
return nullptr;