summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2019-04-18 15:13:19 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2019-04-19 13:19:31 +0200
commit1a5b12aa5da2c718848d3cc5d9bce7bfcdeacf54 (patch)
tree25044edc2afb99073ba6bef8d181dadbb6a53467 /vcl
parenteaaaad0e21edb27edaa865eee03696f007cd8010 (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')
-rw-r--r--vcl/osx/a11yfocustracker.cxx5
-rw-r--r--vcl/unx/generic/fontmanager/fontconfig.cxx3
-rw-r--r--vcl/unx/generic/printer/cpdmgr.cxx9
-rw-r--r--vcl/unx/generic/printer/printerinfomanager.cxx3
-rw-r--r--vcl/unx/gtk/a11y/atkutil.cxx3
5 files changed, 5 insertions, 18 deletions
diff --git a/vcl/osx/a11yfocustracker.cxx b/vcl/osx/a11yfocustracker.cxx
index a84b27d38d66..b62c27edfbc7 100644
--- a/vcl/osx/a11yfocustracker.cxx
+++ b/vcl/osx/a11yfocustracker.cxx
@@ -248,11 +248,8 @@ void AquaA11yFocusTracker::window_got_focus(vcl::Window *pWindow)
}
else
{
- if( m_aDocumentWindowList.find(pWindow) == m_aDocumentWindowList.end() )
- {
- m_aDocumentWindowList.insert(pWindow);
+ if( m_aDocumentWindowList.insert(pWindow).second )
m_xDocumentFocusListener->attachRecursive(xAccessible, xContext, xStateSet);
- }
}
}
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);