Summary: | closing kst imediatly after saving crashes | ||
---|---|---|---|
Product: | [Applications] kst | Reporter: | Matthew Truch <matt> |
Component: | general | Assignee: | kst |
Status: | RESOLVED FIXED | ||
Severity: | crash | ||
Priority: | NOR | ||
Version: | 1.x | ||
Target Milestone: | --- | ||
Platform: | RedHat Enterprise Linux | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Matthew Truch
2004-07-23 01:35:17 UTC
On Thursday 22 July 2004 19:35, Matthew Truch wrote: > If you close kst imediatly after saving the .kst file, kst will crash. > > How to reproduce: start kst, plot some data, save a .kst file of the > current plot, close kst. _______________________________________________ Any backtrace? > Any backtrace?
Not a useful one; debugging symbols are stripped (rpm package).
Cannot reproduce with latest code in CVS. Please update, retest, and reopen with a backtrace if you can reproduce. The crash is still there, but only if you close with the 'x' (not via the menu). As always, no (useful) backtrace available. CVS commit by staikos: - remove unused methods - fix #85821 and #85733 - the same bug - it was an assertion failure, and this is the one place where KstApp::inst() can be null, in (app) destruction. I'm not sure it's a good idea to be calling update methods from a destructor though. CCMAIL: 85821-done@bugs.kde.org, 85733-done@bugs.kde.org M +0 -1 kst.cpp 1.196 M +6 -22 kstviewwindow.cpp 1.32 M +0 -14 kstviewwindow.h 1.17 --- kdeextragear-2/kst/kst/kst.cpp #1.195:1.196 @@ -1243,5 +1243,4 @@ void KstApp::updateDialogs() { changeFileDialog->updateChangeFileDialog(); changeNptsDialog->updateChangeNptsDialog(); - //filterListEditor->update(); updateDataDialogs(false); vectorSaveDialog->init(); --- kdeextragear-2/kst/kst/kstviewwindow.cpp #1.31:1.32 @@ -107,8 +107,4 @@ KstViewWindow::KstViewWindow(QDomElement void KstViewWindow::commonConstructor() { config = kapp->config(); - initStatusBar(); - initActions(); - - readOptions(); connect(this, SIGNAL(focusInEventOccurs( KMdiChildView*)), this, SLOT(slotActivated(KMdiChildView*))); @@ -125,23 +121,11 @@ void KstViewWindow::updateActions() { KstViewWindow::~KstViewWindow() { - assert(KstApp::inst()); // email George if you get this crash _view->release(); - KstApp::inst()->updateDialogsForWindow(); -} - - -void KstViewWindow::initActions() { -} - - -void KstViewWindow::initStatusBar() { -} - - -void KstViewWindow::saveOptions() { -} - - -void KstViewWindow::readOptions() { + KstApp *app = KstApp::inst(); // Can be null on exit - but then why do + // we even need to be calling this function + // here? It seems wrong to me. + if (app) { + app->updateDialogsForWindow(); + } } --- kdeextragear-2/kst/kst/kstviewwindow.h #1.16:1.17 @@ -53,18 +53,4 @@ class KstViewWindow : public KMdiChildVi protected: - /** save options to the configuration file - * Geometry, Toolbar status, Statusbar status */ - void saveOptions(); - - /** read options from configuration file - * Geometry, Toolbar status, Statusbar status */ - void readOptions(); - - /** setup kde2 actions and build the GUI */ - void initActions(); - - /** sets up the statusbar for the main window */ - void initStatusBar(); - /** saves the window properties for each open window during session * end to the session config file, including saving the currently |