Diffstat (limited to 'core/tools/quicklauncher/main.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/tools/quicklauncher/main.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/core/tools/quicklauncher/main.cpp b/core/tools/quicklauncher/main.cpp index 7d368ab..cc411fd 100644 --- a/core/tools/quicklauncher/main.cpp +++ b/core/tools/quicklauncher/main.cpp @@ -23,9 +23,15 @@ #include <qtimer.h> #include <qguardedptr.h> #include <qcopchannel_qws.h> #define QTOPIA_INTERNAL_INITAPP + +#ifdef private +# undef private +#endif +#define private public #include <qtopia/qpeapplication.h> +#undef private #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> @@ -234,13 +240,25 @@ int main( int argc, char** argv ) int rv = app->exec(); if ( mainWindow ) delete (QWidget*)mainWindow; + + delete app; if ( appIface ) loader->releaseInterface( appIface ); delete loader; - - delete app; + // Neither QLibrary nor my Dropin is a QObject and they don't depend + // on a qApp so we destroy QWidget::destroyMapper() without + // crashing the app + // + // The problem is there are some 'static' resources not freed + // in the apps and on destructing these objects are not available + // anymore. In future fix up the apps but for now + // we just skip deletion and hope things go well -zecke +// delete app; + // hack instead -zecke +// delete app->pidChannel; +// app->pidChannel = 0; return rv; } |