summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2013-06-08 00:41:22 +0200
committerDavid Tardon <dtardon@redhat.com>2013-06-10 05:04:11 +0000
commitbc7bff4a0ee668249488ff6168136dd39e0a9362 (patch)
tree761510b54bb15cf9dec0535a6c7e54f3ff6ac58e /sfx2
parentcad5e28b6bf761268d40236cd8aa381680007cae (diff)
Fix memory leak in FileDialogHelper_Impl::createMatcher/addFilters.
Before resetting mpMatcher to a new value check whether the current value needs to be deleted first. Change-Id: I26039c19483621d809dbd8474b86254948efc9f6 Reviewed-on: https://gerrit.libreoffice.org/4194 Reviewed-by: David Tardon <dtardon@redhat.com> Tested-by: David Tardon <dtardon@redhat.com>
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/dialog/filedlghelper.cxx6
1 files changed, 6 insertions, 0 deletions
diff --git a/sfx2/source/dialog/filedlghelper.cxx b/sfx2/source/dialog/filedlghelper.cxx
index c9ab00c7c704..a927cfe35e74 100644
--- a/sfx2/source/dialog/filedlghelper.cxx
+++ b/sfx2/source/dialog/filedlghelper.cxx
@@ -1769,6 +1769,9 @@ void FileDialogHelper_Impl::setFilter( const OUString& rFilter )
// ------------------------------------------------------------------------
void FileDialogHelper_Impl::createMatcher( const String& rFactory )
{
+ if (mbDeleteMatcher)
+ delete mpMatcher;
+
mpMatcher = new SfxFilterMatcher( SfxObjectShell::GetServiceNameFromFactory(rFactory) );
mbDeleteMatcher = sal_True;
}
@@ -1783,6 +1786,9 @@ void FileDialogHelper_Impl::addFilters( const String& rFactory,
if ( ! xFltMgr.is() )
return;
+ if (mbDeleteMatcher)
+ delete mpMatcher;
+
// we still need a matcher to convert UI names to filter names
if ( !rFactory.Len() )
{