LAB: Fix a memory leak in the Image class
This commit is contained in:
parent
5c480485d4
commit
f1bb844e90
3 changed files with 9 additions and 6 deletions
|
@ -1229,8 +1229,7 @@ int LabEngine::followCrumbs() {
|
||||||
|
|
||||||
|
|
||||||
void LabEngine::mayShowCrumbIndicator() {
|
void LabEngine::mayShowCrumbIndicator() {
|
||||||
static byte dropCrumbs[] = { 0x00 };
|
static Image dropCrumbsImage(24, 24, nullptr, this);
|
||||||
static Image dropCrumbsImage(24, 24, dropCrumbs, this);
|
|
||||||
if (getPlatform() != Common::kPlatformWindows)
|
if (getPlatform() != Common::kPlatformWindows)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -1242,8 +1241,7 @@ void LabEngine::mayShowCrumbIndicator() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void LabEngine::mayShowCrumbIndicatorOff() {
|
void LabEngine::mayShowCrumbIndicatorOff() {
|
||||||
static byte dropCrumbsOff[] = { 0x00 };
|
static Image dropCrumbsOffImage(24, 24, nullptr, this);
|
||||||
static Image dropCrumbsOffImage(24, 24, dropCrumbsOff, this);
|
|
||||||
|
|
||||||
if (getPlatform() != Common::kPlatformWindows)
|
if (getPlatform() != Common::kPlatformWindows)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -49,10 +49,14 @@ Image::Image(Common::File *s, LabEngine *vm) : _vm(vm) {
|
||||||
if (size & 1)
|
if (size & 1)
|
||||||
size++;
|
size++;
|
||||||
|
|
||||||
_imageData = new byte[size]; // FIXME: Memory leak!
|
_imageData = new byte[size];
|
||||||
s->read(_imageData, size);
|
s->read(_imageData, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Image::~Image() {
|
||||||
|
delete _imageData;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Blits a piece of one image to another.
|
* Blits a piece of one image to another.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -47,9 +47,10 @@ public:
|
||||||
uint16 _height;
|
uint16 _height;
|
||||||
byte *_imageData;
|
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(int w, int h, byte *d, LabEngine *vm) : _width(w), _height(h), _imageData(d), _vm(vm) {}
|
||||||
Image(Common::File *s, LabEngine *vm);
|
Image(Common::File *s, LabEngine *vm);
|
||||||
|
virtual ~Image();
|
||||||
|
|
||||||
void drawImage(uint16 x, uint16 y);
|
void drawImage(uint16 x, uint16 y);
|
||||||
void drawMaskImage(uint16 x, uint16 y);
|
void drawMaskImage(uint16 x, uint16 y);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue