diff options
author | Mark Wielaard <mark@klomp.org> | 2013-06-08 00:41:22 +0200 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2013-06-10 05:04:11 +0000 |
commit | bc7bff4a0ee668249488ff6168136dd39e0a9362 (patch) | |
tree | 761510b54bb15cf9dec0535a6c7e54f3ff6ac58e /sfx2/source | |
parent | cad5e28b6bf761268d40236cd8aa381680007cae (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/source')
-rw-r--r-- | sfx2/source/dialog/filedlghelper.cxx | 6 |
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() ) { |