| @@ -87,7 +87,7 @@ public: | |||||
| pixelStride (format_ == Image::RGB ? 3 : ((format_ == Image::ARGB) ? 4 : 1)), | pixelStride (format_ == Image::RGB ? 3 : ((format_ == Image::ARGB) ? 4 : 1)), | ||||
| lineStride ((pixelStride * jmax (1, w) + 3) & ~3) | 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 | LowLevelGraphicsContext* createLowLevelContext() override | ||||
| @@ -98,7 +98,7 @@ public: | |||||
| void initialiseBitmapData (Image::BitmapData& bitmap, int x, int y, Image::BitmapData::ReadWriteMode mode) override | 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.pixelFormat = pixelFormat; | ||||
| bitmap.lineStride = lineStride; | bitmap.lineStride = lineStride; | ||||
| bitmap.pixelStride = pixelStride; | bitmap.pixelStride = pixelStride; | ||||
| @@ -110,7 +110,7 @@ public: | |||||
| ImagePixelData::Ptr clone() override | ImagePixelData::Ptr clone() override | ||||
| { | { | ||||
| SoftwarePixelData* s = new SoftwarePixelData (pixelFormat, width, height, false); | 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; | return s; | ||||
| } | } | ||||