diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2019-04-18 15:13:19 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2019-04-19 13:19:31 +0200 |
commit | 1a5b12aa5da2c718848d3cc5d9bce7bfcdeacf54 (patch) | |
tree | 25044edc2afb99073ba6bef8d181dadbb6a53467 /vcl/unx | |
parent | eaaaad0e21edb27edaa865eee03696f007cd8010 (diff) |
optimise find/insert pattern
if we're doing a find/insert on a set or a map, it is better to just do
a conditional insert/emplace operation than triggering two lookups.
Change-Id: I80da5097f5a89fe30fa348ce5b6e747c34287a8d
Reviewed-on: https://gerrit.libreoffice.org/70937
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl/unx')
-rw-r--r-- | vcl/unx/generic/fontmanager/fontconfig.cxx | 3 | ||||
-rw-r--r-- | vcl/unx/generic/printer/cpdmgr.cxx | 9 | ||||
-rw-r--r-- | vcl/unx/generic/printer/printerinfomanager.cxx | 3 | ||||
-rw-r--r-- | vcl/unx/gtk/a11y/atkutil.cxx | 3 |
4 files changed, 4 insertions, 14 deletions
diff --git a/vcl/unx/generic/fontmanager/fontconfig.cxx b/vcl/unx/generic/fontmanager/fontconfig.cxx index 2cb1aee919d9..e13eb0a82716 100644 --- a/vcl/unx/generic/fontmanager/fontconfig.cxx +++ b/vcl/unx/generic/fontmanager/fontconfig.cxx @@ -1041,9 +1041,8 @@ void PrintFontManager::Substitute(FontSelectPattern &rPattern, OUString& rMissin { LanguageTag aOurTag(getExemplarLangTagForCodePoint(pRemainingCodes[i])); OString sTag = OUStringToOString(aOurTag.getBcp47(), RTL_TEXTENCODING_UTF8); - if (m_aPreviousLangSupportRequests.find(sTag) != m_aPreviousLangSupportRequests.end()) + if (!m_aPreviousLangSupportRequests.insert(sTag).second) continue; - m_aPreviousLangSupportRequests.insert(sTag); sTag = mapToFontConfigLangTag(aOurTag); if (!sTag.isEmpty() && m_aPreviousLangSupportRequests.find(sTag) == m_aPreviousLangSupportRequests.end()) { diff --git a/vcl/unx/generic/printer/cpdmgr.cxx b/vcl/unx/generic/printer/cpdmgr.cxx index 195708d1953b..fe3b44918d16 100644 --- a/vcl/unx/generic/printer/cpdmgr.cxx +++ b/vcl/unx/generic/printer/cpdmgr.cxx @@ -193,14 +193,7 @@ std::vector<std::pair<std::string, gchar*>> const & CPDManager::getTempBackends( } void CPDManager::addNewPrinter(const OUString& aPrinterName, const OUString& aUniqueName, CPDPrinter *pDest) { - std::pair<OUString, CPDPrinter *> newPrinter (aUniqueName, pDest); - std::unordered_map<OUString, CPDPrinter *>::iterator it = m_aCPDDestMap.find( aUniqueName ); - if (it == m_aCPDDestMap.end()) { - m_aCPDDestMap.insert(newPrinter); - } else { - m_aCPDDestMap.erase(it); - m_aCPDDestMap.insert(newPrinter); - } + m_aCPDDestMap[aUniqueName] = pDest; bool bSetToGlobalDefaults = m_aPrinters.find( aUniqueName ) == m_aPrinters.end(); Printer aPrinter = m_aPrinters[ aUniqueName ]; if( bSetToGlobalDefaults ) diff --git a/vcl/unx/generic/printer/printerinfomanager.cxx b/vcl/unx/generic/printer/printerinfomanager.cxx index 0d61ae9ef67d..28ba5eee2e7b 100644 --- a/vcl/unx/generic/printer/printerinfomanager.cxx +++ b/vcl/unx/generic/printer/printerinfomanager.cxx @@ -818,12 +818,11 @@ static void standardSysQueueTokenHandler( // get the queue name between fore and aft tokens OUString aSysQueue( OStringToOUString( line.copy( nPos, nAftPos - nPos ), aEncoding ) ); // do not insert duplicates (e.g. lpstat tends to produce such lines) - if( aUniqueSet.find( aSysQueue ) == aUniqueSet.end() ) + if( aUniqueSet.insert( aSysQueue ).second ) { o_rQueues.emplace_back( ); o_rQueues.back().m_aQueue = aSysQueue; o_rQueues.back().m_aLocation = aSysQueue; - aUniqueSet.insert( aSysQueue ); } } } diff --git a/vcl/unx/gtk/a11y/atkutil.cxx b/vcl/unx/gtk/a11y/atkutil.cxx index 92905f6ec64b..e76cf990228a 100644 --- a/vcl/unx/gtk/a11y/atkutil.cxx +++ b/vcl/unx/gtk/a11y/atkutil.cxx @@ -576,9 +576,8 @@ static void handle_get_focus(::VclWindowEvent const * pEvent) } else { - if( g_aWindowList.list.find(pWindow) == g_aWindowList.list.end() ) + if( g_aWindowList.list.insert(pWindow).second ) { - g_aWindowList.list.insert(pWindow); try { rDocumentFocusListener.attachRecursive(xAccessible, xContext, xStateSet); |