diff options
author | Marcos Paulo de Souza <marcos.souza.org@gmail.com> | 2013-07-25 01:14:03 -0300 |
---|---|---|
committer | Fridrich Strba <fridrich@documentfoundation.org> | 2013-07-25 07:02:29 +0000 |
commit | ef66cc105e0051fa1414b72c5ee2bf1b2f9331cb (patch) | |
tree | bbdf97d5dda2637dd92ff139c36b76514d69d2d8 /starmath | |
parent | 2384be536466bba9d05f0546336c52c5b66bd9dc (diff) |
Fix memory leak in Math, by holding SmModel pointer
And deleting this in destructor of SmDocShell
Change-Id: Ida96648c7aae90fb5b0afac916587bbb049f90b3
Reviewed-on: https://gerrit.libreoffice.org/5088
Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org>
Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
Diffstat (limited to 'starmath')
-rw-r--r-- | starmath/inc/document.hxx | 2 | ||||
-rw-r--r-- | starmath/source/document.cxx | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/starmath/inc/document.hxx b/starmath/inc/document.hxx index 4446ad0d86fd..f86207dffb4f 100644 --- a/starmath/inc/document.hxx +++ b/starmath/inc/document.hxx @@ -39,6 +39,7 @@ #include "format.hxx" #include "parse.hxx" #include "smmod.hxx" +#include "unomodel.hxx" class SmNode; class SfxMenuBarManager; @@ -95,6 +96,7 @@ class SmDocShell : public SfxObjectShell, public SfxListener OUString aText; SmFormat aFormat; SmParser aInterpreter; + SmModel *pModel; OUString aAccText; SmNode *pTree; SfxMenuBarManager *pMenuMgr; diff --git a/starmath/source/document.cxx b/starmath/source/document.cxx index e49faecbc852..edc635ed4ac5 100644 --- a/starmath/source/document.cxx +++ b/starmath/source/document.cxx @@ -684,6 +684,7 @@ void SmDocShell::Repaint() SmDocShell::SmDocShell( const sal_uInt64 i_nSfxCreationFlags ) : SfxObjectShell( i_nSfxCreationFlags ), + pModel ( new SmModel(this) ), pTree ( 0 ), pEditEngineItemPool ( 0 ), pEditEngine ( 0 ), @@ -703,11 +704,9 @@ SmDocShell::SmDocShell( const sal_uInt64 i_nSfxCreationFlags ) : StartListening(aFormat); StartListening(*pp->GetConfig()); - SetBaseModel( new SmModel(this) ); + SetBaseModel( pModel ); } - - SmDocShell::~SmDocShell() { SAL_INFO( "starmath", "starmath: SmDocShell::~SmDocShell" ); @@ -717,7 +716,6 @@ SmDocShell::~SmDocShell() EndListening(aFormat); EndListening(*pp->GetConfig()); - if(pCursor) delete pCursor; pCursor = NULL; @@ -726,6 +724,7 @@ SmDocShell::~SmDocShell() SfxItemPool::Free(pEditEngineItemPool); delete pTree; delete pPrinter; + delete pModel; } |