diff options
author | Dennis Francis <dennisfrancis.in@gmail.com> | 2015-11-30 04:44:43 +0530 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-12-01 09:13:05 +0000 |
commit | 75c956d8ed1a4d8f46af3de079ab1fb68add3b40 (patch) | |
tree | 94c3e4e78233d9260f77bafeb3b3d9870e1c462a /sc/source/filter/xml | |
parent | 796a904b6f3cfd7895e1763fdb043130a9c484ac (diff) |
fix memory leaks on loading and saving an ods file
Change-Id: I3015a0f0254b9546386871cb015f925f0cd792f3
Reviewed-on: https://gerrit.libreoffice.org/20274
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sc/source/filter/xml')
-rw-r--r-- | sc/source/filter/xml/XMLTableHeaderFooterContext.cxx | 3 | ||||
-rw-r--r-- | sc/source/filter/xml/XMLTableMasterPageExport.cxx | 15 |
2 files changed, 18 insertions, 0 deletions
diff --git a/sc/source/filter/xml/XMLTableHeaderFooterContext.cxx b/sc/source/filter/xml/XMLTableHeaderFooterContext.cxx index ba0e16e98104..2ba8ed048153 100644 --- a/sc/source/filter/xml/XMLTableHeaderFooterContext.cxx +++ b/sc/source/filter/xml/XMLTableHeaderFooterContext.cxx @@ -25,6 +25,7 @@ #include <comphelper/extract.hxx> #include "unonames.hxx" +#include "textuno.hxx" using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -99,6 +100,8 @@ XMLTableHeaderFooterContext::XMLTableHeaderFooterContext( SvXMLImport& rImport, XMLTableHeaderFooterContext::~XMLTableHeaderFooterContext() { + rtl::Reference<ScHeaderFooterContentObj> pImp = ScHeaderFooterContentObj::getImplementation( xHeaderFooterContent ); + pImp->dispose(); } SvXMLImportContext *XMLTableHeaderFooterContext::CreateChildContext( diff --git a/sc/source/filter/xml/XMLTableMasterPageExport.cxx b/sc/source/filter/xml/XMLTableMasterPageExport.cxx index 260deea6dffe..f9e42add00bd 100644 --- a/sc/source/filter/xml/XMLTableMasterPageExport.cxx +++ b/sc/source/filter/xml/XMLTableMasterPageExport.cxx @@ -23,9 +23,11 @@ #include <com/sun/star/beans/XPropertySet.hpp> #include "XMLTableMasterPageExport.hxx" #include <comphelper/extract.hxx> +#include <rtl/ref.hxx> #include "unonames.hxx" #include "xmlexprt.hxx" +#include "textuno.hxx" using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -105,6 +107,14 @@ void XMLTableMasterPageExport::exportHeaderFooter(const css::uno::Reference < cs } } +void lcl_DisposeXHeaderFooterContent( Reference < sheet::XHeaderFooterContent > xHFContent ) +{ + if( !xHFContent.is() ) + return; + rtl::Reference<ScHeaderFooterContentObj> pImp = ScHeaderFooterContentObj::getImplementation( xHFContent ); + pImp->dispose(); +} + void XMLTableMasterPageExport::exportMasterPageContent( const Reference < XPropertySet > & rPropSet, bool bAutoStyles ) @@ -162,6 +172,11 @@ void XMLTableMasterPageExport::exportMasterPageContent( exportHeaderFooter( xFooterLeft, XML_FOOTER_LEFT, bLeftFooter ); } + + lcl_DisposeXHeaderFooterContent( xHeader ); + lcl_DisposeXHeaderFooterContent( xHeaderLeft ); + lcl_DisposeXHeaderFooterContent( xFooter ); + lcl_DisposeXHeaderFooterContent( xFooterLeft ); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |