mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-21 09:21:08 +00:00
LAB: Fix a memory leak in the Image class
This commit is contained in:
parent
5c480485d4
commit
f1bb844e90
@ -1229,8 +1229,7 @@ int LabEngine::followCrumbs() {
|
||||
|
||||
|
||||
void LabEngine::mayShowCrumbIndicator() {
|
||||
static byte dropCrumbs[] = { 0x00 };
|
||||
static Image dropCrumbsImage(24, 24, dropCrumbs, this);
|
||||
static Image dropCrumbsImage(24, 24, nullptr, this);
|
||||
if (getPlatform() != Common::kPlatformWindows)
|
||||
return;
|
||||
|
||||
@ -1242,8 +1241,7 @@ void LabEngine::mayShowCrumbIndicator() {
|
||||
}
|
||||
|
||||
void LabEngine::mayShowCrumbIndicatorOff() {
|
||||
static byte dropCrumbsOff[] = { 0x00 };
|
||||
static Image dropCrumbsOffImage(24, 24, dropCrumbsOff, this);
|
||||
static Image dropCrumbsOffImage(24, 24, nullptr, this);
|
||||
|
||||
if (getPlatform() != Common::kPlatformWindows)
|
||||
return;
|
||||
|
@ -49,10 +49,14 @@ Image::Image(Common::File *s, LabEngine *vm) : _vm(vm) {
|
||||
if (size & 1)
|
||||
size++;
|
||||
|
||||
_imageData = new byte[size]; // FIXME: Memory leak!
|
||||
_imageData = new byte[size];
|
||||
s->read(_imageData, size);
|
||||
}
|
||||
|
||||
Image::~Image() {
|
||||
delete _imageData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Blits a piece of one image to another.
|
||||
*/
|
||||
|
@ -47,9 +47,10 @@ public:
|
||||
uint16 _height;
|
||||
byte *_imageData;
|
||||
|
||||
Image(LabEngine *vm) : _width(0), _height(0), _imageData(0), _vm(vm) {}
|
||||
Image(LabEngine *vm) : _width(0), _height(0), _imageData(nullptr), _vm(vm) {}
|
||||
Image(int w, int h, byte *d, LabEngine *vm) : _width(w), _height(h), _imageData(d), _vm(vm) {}
|
||||
Image(Common::File *s, LabEngine *vm);
|
||||
virtual ~Image();
|
||||
|
||||
void drawImage(uint16 x, uint16 y);
|
||||
void drawMaskImage(uint16 x, uint16 y);
|
||||
|
Loading…
Reference in New Issue
Block a user