mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-24 05:01:43 +00:00
GRAPHICS: MACGUI: Fix memory leak
Clean up _desktopBmp before it's reallocated again.
This commit is contained in:
parent
19e9f97824
commit
c537cd9ca6
@ -228,6 +228,13 @@ MacWindowManager::MacWindowManager(uint32 mode, MacPatterns *patterns, Common::L
|
||||
setDesktopMode(mode);
|
||||
}
|
||||
|
||||
void MacWindowManager::cleanupDesktopBmp() {
|
||||
if (_desktopBmp) {
|
||||
_desktopBmp->free();
|
||||
delete _desktopBmp;
|
||||
}
|
||||
}
|
||||
|
||||
MacWindowManager::~MacWindowManager() {
|
||||
for (Common::HashMap<uint, BaseMacWindow *>::iterator it = _windows.begin(); it != _windows.end(); it++)
|
||||
delete it->_value;
|
||||
@ -238,12 +245,9 @@ MacWindowManager::~MacWindowManager() {
|
||||
delete _fontMan;
|
||||
delete _screenCopy;
|
||||
|
||||
if (_desktopBmp) {
|
||||
_desktopBmp->free();
|
||||
delete _desktopBmp;
|
||||
}
|
||||
delete _desktop;
|
||||
|
||||
cleanupDesktopBmp();
|
||||
cleanupDataBundle();
|
||||
|
||||
g_system->getTimerManager()->removeTimerProc(&menuTimerHandler);
|
||||
@ -253,9 +257,8 @@ void MacWindowManager::setDesktopMode(uint32 mode) {
|
||||
if (!(mode & Graphics::kWMNoScummVMWallpaper)) {
|
||||
if (!_mode || (_mode & Graphics::kWMNoScummVMWallpaper))
|
||||
loadDesktop();
|
||||
} else if (_desktopBmp) {
|
||||
_desktopBmp->free();
|
||||
_desktopBmp = nullptr;
|
||||
} else {
|
||||
cleanupDesktopBmp();
|
||||
}
|
||||
|
||||
_mode = mode;
|
||||
@ -782,6 +785,7 @@ void MacWindowManager::loadDesktop() {
|
||||
}
|
||||
|
||||
void MacWindowManager::setDesktopColor(byte r, byte g, byte b) {
|
||||
cleanupDesktopBmp();
|
||||
_desktopBmp = new Graphics::TransparentSurface();
|
||||
uint32 color = TS_RGB(r, g, b);
|
||||
|
||||
|
@ -340,6 +340,8 @@ public:
|
||||
|
||||
void loadDataBundle();
|
||||
void cleanupDataBundle();
|
||||
void cleanupDesktopBmp();
|
||||
|
||||
BorderOffsets getBorderOffsets(byte windowType);
|
||||
Common::SeekableReadStream *getBorderFile(byte windowType, uint32 flags);
|
||||
Common::SeekableReadStream *getFile(const Common::String &filename);
|
||||
|
Loading…
x
Reference in New Issue
Block a user