From 9aaf4f8de762a540780aaef54d15802762dc4130 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Wed, 3 Jul 2002 05:26:11 +0000 Subject: [PATCH] some memory bugs from woodblock (thanks!) --- src/Screen.cc | 1 + src/Window.cc | 22 ++++++++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/Screen.cc b/src/Screen.cc index 775254c6..dac5d6f8 100644 --- a/src/Screen.cc +++ b/src/Screen.cc @@ -1303,6 +1303,7 @@ void BScreen::updateWorkArea(void) { } xatom->setValue(getRootWindow(), XAtom::net_workarea, XAtom::cardinal, dims, 4 * workspacesList.size()); + delete [] dims; } else xatom->setValue(getRootWindow(), XAtom::net_workarea, XAtom::cardinal, 0, 0); diff --git a/src/Window.cc b/src/Window.cc index e735d07b..3816538d 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -1225,9 +1225,12 @@ void BlackboxWindow::getMWMHints(void) { num = PropMwmHintsElements; if (! xatom->getValue(client.window, XAtom::motif_wm_hints, XAtom::motif_wm_hints, num, - (unsigned long **)&mwm_hint) || - num < PropMwmHintsElements) + (unsigned long **)&mwm_hint)) return; + if (num < PropMwmHintsElements) { + delete [] mwm_hint; + return; + } if (mwm_hint->flags & MwmHintsDecorations) { if (mwm_hint->decorations & MwmDecorAll) { @@ -1268,7 +1271,7 @@ void BlackboxWindow::getMWMHints(void) { functions |= Func_Close; } } - delete mwm_hint; + delete [] mwm_hint; } @@ -1286,9 +1289,12 @@ bool BlackboxWindow::getBlackboxHints(void) { num = PropBlackboxHintsElements; if (! xatom->getValue(client.window, XAtom::blackbox_hints, XAtom::blackbox_hints, num, - (unsigned long **)&blackbox_hint) || - num < PropBlackboxHintsElements) + (unsigned long **)&blackbox_hint)) return False; + if (num < PropBlackboxHintsElements) { + delete [] blackbox_hint; + return False; + } if (blackbox_hint->flags & AttribShaded) flags.shaded = (blackbox_hint->attrib & AttribShaded); @@ -1350,7 +1356,7 @@ bool BlackboxWindow::getBlackboxHints(void) { reconfigure(); } - delete blackbox_hint; + delete [] blackbox_hint; return True; } @@ -2103,7 +2109,7 @@ void BlackboxWindow::restoreAttributes(void) { (unsigned long **)&net)) return; if (num < PropBlackboxAttributesElements) { - delete net; + delete [] net; return; } @@ -2169,7 +2175,7 @@ void BlackboxWindow::restoreAttributes(void) { // with the state set it will then be the map event's job to read the // window's state and behave accordingly - delete net; + delete [] net; } -- 2.45.2