From e16fc112d83924fb75ff874b19119a9c38419461 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 12 May 2012 21:12:56 +0000 Subject: [PATCH] NxWM: Fix double deletion of class git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4727 7fd9a85b-ad96-42d3-883c-3090e2eb8679 --- NxWidgets/ChangeLog.txt | 5 ++++- NxWidgets/nxwm/src/ccalibration.cxx | 5 +++-- NxWidgets/nxwm/src/ctaskbar.cxx | 6 +++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/NxWidgets/ChangeLog.txt b/NxWidgets/ChangeLog.txt index da14da62b1..8dd65d78b0 100755 --- a/NxWidgets/ChangeLog.txt +++ b/NxWidgets/ChangeLog.txt @@ -62,4 +62,7 @@ some special mouse and keyboard input event handling. * NxWM::CTaskbar: Correct the calculation of the physical size of the display. - +* NxWM::CCalibration: run method must clear m_stop when returning, or you can + never restart the Calibration window. +* NxWM::CTaskbar: On a failure to start an application, the application icon + CImage was being deleted twice. diff --git a/NxWidgets/nxwm/src/ccalibration.cxx b/NxWidgets/nxwm/src/ccalibration.cxx index 4c6a29ed9e..1fc9f3466f 100644 --- a/NxWidgets/nxwm/src/ccalibration.cxx +++ b/NxWidgets/nxwm/src/ccalibration.cxx @@ -168,8 +168,9 @@ bool CCalibration::run(void) touchscreenInput(sample); } - - return !m_stop; + + m_stop = false; + return true; } /** diff --git a/NxWidgets/nxwm/src/ctaskbar.cxx b/NxWidgets/nxwm/src/ctaskbar.cxx index 87fa34c3d4..9558e47a86 100644 --- a/NxWidgets/nxwm/src/ctaskbar.cxx +++ b/NxWidgets/nxwm/src/ctaskbar.cxx @@ -393,8 +393,12 @@ bool CTaskbar::startApplication(IApplication *app, bool minimized) if (!app->run()) { + // Call stopApplication on a failure to start. This will call + // app->stop() (which is probably not necesary for the application + // but it should be prepared/ to handle it). stopApplication() + // will also removed the icon image from the list and delete it. + stopApplication(app); - image->disable(); return false; }