aboutsummaryrefslogtreecommitdiff
path: root/engines/glk/selection.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2018-11-17 07:36:36 -0800
committerPaul Gilbert2018-12-08 19:05:59 -0800
commit4b011b2f1cfdc3aac0468248f4feb9faea3501a2 (patch)
tree1c252f542408f34b159e77622b5f70d43947b5d6 /engines/glk/selection.cpp
parent3d34cd151f9f56d24299eba4372e71e4a6b26131 (diff)
downloadscummvm-rg350-4b011b2f1cfdc3aac0468248f4feb9faea3501a2.tar.gz
scummvm-rg350-4b011b2f1cfdc3aac0468248f4feb9faea3501a2.tar.bz2
scummvm-rg350-4b011b2f1cfdc3aac0468248f4feb9faea3501a2.zip
GLK: Freeing of data on exit
Diffstat (limited to 'engines/glk/selection.cpp')
-rw-r--r--engines/glk/selection.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/engines/glk/selection.cpp b/engines/glk/selection.cpp
index 566ae65345..f251171736 100644
--- a/engines/glk/selection.cpp
+++ b/engines/glk/selection.cpp
@@ -65,14 +65,21 @@ WindowMask::WindowMask() : _hor(0), _ver(0), _links(nullptr) {
resize(g_system->getWidth(), g_system->getHeight());
}
-void WindowMask::resize(size_t x, size_t y) {
- // Deallocate old storage
+WindowMask::~WindowMask() {
+ clear();
+}
+
+void WindowMask::clear() {
for (size_t i = 0; i < _hor; i++) {
if (_links[i])
delete _links[i];
}
delete _links;
+}
+
+void WindowMask::resize(size_t x, size_t y) {
+ clear();
_hor = x + 1;
_ver = y + 1;