summaryrefslogtreecommitdiff
path: root/starmath
diff options
context:
space:
mode:
authorMarcos Paulo de Souza <marcos.souza.org@gmail.com>2013-07-25 01:14:03 -0300
committerFridrich Strba <fridrich@documentfoundation.org>2013-07-25 07:02:29 +0000
commitef66cc105e0051fa1414b72c5ee2bf1b2f9331cb (patch)
treebbdf97d5dda2637dd92ff139c36b76514d69d2d8 /starmath
parent2384be536466bba9d05f0546336c52c5b66bd9dc (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.hxx2
-rw-r--r--starmath/source/document.cxx7
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;
}