vcl/inc/printerinfomanager.hxx | 4 ++-- vcl/unx/generic/printer/printerinfomanager.cxx | 22 +++++++++++----------- 2 files changed, 13 insertions(+), 13 deletions(-)
New commits: commit c16804de78b1cf1ad906eaacbcc7c51d35218d8a Author: Julien Nabet <serval2...@yahoo.fr> Date: Wed Oct 18 22:39:33 2017 +0200 Replace list by unordered_set for m_aAlternateFiles (vcl) Change-Id: I66ea61972fed87245b33dfe355eff58d23041120 Reviewed-on: https://gerrit.libreoffice.org/43520 Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Julien Nabet <serval2...@yahoo.fr> diff --git a/vcl/inc/printerinfomanager.hxx b/vcl/inc/printerinfomanager.hxx index 3fe420150cea..315d7253ae8b 100644 --- a/vcl/inc/printerinfomanager.hxx +++ b/vcl/inc/printerinfomanager.hxx @@ -21,9 +21,9 @@ #define INCLUDED_VCL_PRINTERINFOMANAGER_HXX #include <memory> -#include <list> #include <vector> #include <unordered_map> +#include <unordered_set> #include <vcl/dllapi.h> #include <vcl/jobdata.hxx> @@ -90,7 +90,7 @@ protected: OUString m_aFile; // details other config files that have this printer // in case of removal all have to be removed - std::list< OUString > m_aAlternateFiles; + std::unordered_set< OUString, OUStringHash > m_aAlternateFiles; // group in m_aFile containing the printer // this must be unique over all configuration files // it usually should be the printer name diff --git a/vcl/unx/generic/printer/printerinfomanager.cxx b/vcl/unx/generic/printer/printerinfomanager.cxx index 842f11deea22..ac5779a6ae57 100644 --- a/vcl/unx/generic/printer/printerinfomanager.cxx +++ b/vcl/unx/generic/printer/printerinfomanager.cxx @@ -463,7 +463,7 @@ void PrinterInfoManager::initialize() if( find_it != m_aPrinters.end() ) { aPrinter.m_aAlternateFiles = find_it->second.m_aAlternateFiles; - aPrinter.m_aAlternateFiles.push_front( find_it->second.m_aFile ); + aPrinter.m_aAlternateFiles.emplace( find_it->second.m_aFile ); } m_aPrinters[ aPrinterName ] = aPrinter; } @@ -627,10 +627,9 @@ bool PrinterInfoManager::writePrinterConfig() { rofiles[ it->second.m_aFile ] = 1; // update alternate file list - // the remove operation ensures uniqueness of each alternate - it->second.m_aAlternateFiles.remove( it->second.m_aFile ); - it->second.m_aAlternateFiles.remove( files.begin()->first ); - it->second.m_aAlternateFiles.push_front( it->second.m_aFile ); + // be sure m_aAlternateFiles doesn't contain the m_aFile value + it->second.m_aAlternateFiles.erase( files.begin()->first ); + it->second.m_aAlternateFiles.emplace( it->second.m_aFile ); // update file it->second.m_aFile = files.begin()->first; } @@ -770,11 +769,13 @@ bool PrinterInfoManager::removePrinter( const OUString& rPrinterName, bool bChec bSuccess = false; else { - for( std::list< OUString >::const_iterator file_it = it->second.m_aAlternateFiles.begin(); - file_it != it->second.m_aAlternateFiles.end() && bSuccess; ++file_it ) + for (auto const& file : it->second.m_aAlternateFiles) { - if( ! checkWriteability( *file_it ) ) + if( ! checkWriteability(file) ) + { bSuccess = false; + break; + } } } if( bSuccess && ! bCheckOnly ) @@ -783,10 +784,9 @@ bool PrinterInfoManager::removePrinter( const OUString& rPrinterName, bool bChec Config aConfig( it->second.m_aFile ); aConfig.DeleteGroup( it->second.m_aGroup ); aConfig.Flush(); - for( std::list< OUString >::const_iterator file_it = it->second.m_aAlternateFiles.begin(); - file_it != it->second.m_aAlternateFiles.end() && bSuccess; ++file_it ) + for (auto const& file : it->second.m_aAlternateFiles) { - Config aAltConfig( *file_it ); + Config aAltConfig( file ); aAltConfig.DeleteGroup( it->second.m_aGroup ); aAltConfig.Flush(); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits