diff --git a/modules/juce_graphics/images/juce_Image.cpp b/modules/juce_graphics/images/juce_Image.cpp index 1b206f5a22..1181c0e0f4 100644 --- a/modules/juce_graphics/images/juce_Image.cpp +++ b/modules/juce_graphics/images/juce_Image.cpp @@ -87,7 +87,7 @@ public: pixelStride (format_ == Image::RGB ? 3 : ((format_ == Image::ARGB) ? 4 : 1)), lineStride ((pixelStride * jmax (1, w) + 3) & ~3) { - imageData.allocate ((size_t) (lineStride * jmax (1, h)), clearImage); + imageData.allocate ((size_t) lineStride * (size_t) jmax (1, h), clearImage); } LowLevelGraphicsContext* createLowLevelContext() override @@ -98,7 +98,7 @@ public: void initialiseBitmapData (Image::BitmapData& bitmap, int x, int y, Image::BitmapData::ReadWriteMode mode) override { - bitmap.data = imageData + x * pixelStride + y * lineStride; + bitmap.data = imageData + (size_t) x * (size_t) pixelStride + (size_t) y * (size_t) lineStride; bitmap.pixelFormat = pixelFormat; bitmap.lineStride = lineStride; bitmap.pixelStride = pixelStride; @@ -110,7 +110,7 @@ public: ImagePixelData::Ptr clone() override { SoftwarePixelData* s = new SoftwarePixelData (pixelFormat, width, height, false); - memcpy (s->imageData, imageData, (size_t) (lineStride * height)); + memcpy (s->imageData, imageData, (size_t) lineStride * (size_t) height); return s; }