From: Jean-Marc Lasgouttes Date: Thu, 3 Aug 2000 13:48:33 +0000 (+0000) Subject: Fix crash on exit (angus) X-Git-Tag: 1.6.10~22056 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=c44a392c347ab0c9090977266d668621d6018700;p=features.git Fix crash on exit (angus) git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@951 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/ChangeLog b/ChangeLog index d165bb87ef..b2afe40652 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2000-08-03 Angus Leeming + + * src/frontends/xforms/FormCommand.[Ch] (d-tor): removed + + * src/frontends/xforms/FormCitation.[Ch], + src/frontends/xforms/FormIndex.[Ch], + src/frontends/xforms/FormToc.[Ch], + src/frontends/xforms/FormUrl.[Ch] (d-tors): call free() + 2000-08-03 Angus Leeming * src/commandtags.h: renamed, created some flags for citation @@ -20,9 +29,6 @@ * src/frontends/xforms/forms/form_index.fd: xforms implementation of the Index dialog - 2000-08-02 Lars Gullik Bjønnes - - * src/insets/insetref.C (Latex): rewrite so that there is now 2000-08-01 Dekel Tsur * src/mathed/math_write.C (MathDecorationInset::Write) Put \protect diff --git a/src/frontends/xforms/FormCitation.C b/src/frontends/xforms/FormCitation.C index cee0946f1e..df45cd020c 100644 --- a/src/frontends/xforms/FormCitation.C +++ b/src/frontends/xforms/FormCitation.C @@ -52,6 +52,7 @@ FormCitation::FormCitation(LyXView * lv, Dialogs * d) FormCitation::~FormCitation() { + free(); delete dialog_; } diff --git a/src/frontends/xforms/FormCommand.C b/src/frontends/xforms/FormCommand.C index 44237d86d6..a9d975fa66 100644 --- a/src/frontends/xforms/FormCommand.C +++ b/src/frontends/xforms/FormCommand.C @@ -34,12 +34,6 @@ FormCommand::FormCommand(LyXView * lv, Dialogs * d, string const & t) {} -FormCommand::~FormCommand() -{ - free(); -} - - void FormCommand::showInset( InsetCommand * const inset ) { if( dialogIsOpen || inset == 0 ) return; @@ -94,7 +88,7 @@ void FormCommand::free() // we don't need to delete u and h here because // hide() does that after disconnecting. if( form() ) { - if( form()->visible) + if( form()->visible ) hide(); fl_free_form(form()); } diff --git a/src/frontends/xforms/FormCommand.h b/src/frontends/xforms/FormCommand.h index a0d89367bc..a5ea17fdb6 100644 --- a/src/frontends/xforms/FormCommand.h +++ b/src/frontends/xforms/FormCommand.h @@ -31,8 +31,6 @@ class FormCommand : public DialogBase, public noncopyable { public: /// Constructor FormCommand(LyXView *, Dialogs *, string const & ); - /// Destructor - virtual ~FormCommand(); /**@name Real per-instance Callback Methods */ //@{ @@ -60,6 +58,8 @@ protected: virtual void update() = 0; /// Apply from dialog (modify or create inset) virtual void apply() = 0; + /// Explicitly free the dialog. + void free(); /// delete derived class variables from hide() virtual void clearStore() {} /// Pointer to the actual instantiation of the xform's form @@ -87,8 +87,6 @@ private: void show(); /// Hide the dialog. void hide(); - /// Explicitly free the dialog. - void free(); /**@name Private Data */ diff --git a/src/frontends/xforms/FormIndex.C b/src/frontends/xforms/FormIndex.C index 147886c84c..528c3e7338 100644 --- a/src/frontends/xforms/FormIndex.C +++ b/src/frontends/xforms/FormIndex.C @@ -39,6 +39,7 @@ FormIndex::FormIndex(LyXView * lv, Dialogs * d) FormIndex::~FormIndex() { + free(); delete dialog_; } diff --git a/src/frontends/xforms/FormToc.C b/src/frontends/xforms/FormToc.C index 4dba7b0fb0..9a24d2b7ce 100644 --- a/src/frontends/xforms/FormToc.C +++ b/src/frontends/xforms/FormToc.C @@ -42,6 +42,7 @@ FormToc::FormToc(LyXView * lv, Dialogs * d) FormToc::~FormToc() { + free(); delete dialog_; } diff --git a/src/frontends/xforms/FormUrl.C b/src/frontends/xforms/FormUrl.C index bf640fe656..d5a99291ff 100644 --- a/src/frontends/xforms/FormUrl.C +++ b/src/frontends/xforms/FormUrl.C @@ -39,6 +39,7 @@ FormUrl::FormUrl(LyXView * lv, Dialogs * d) FormUrl::~FormUrl() { + free(); delete dialog_; }