From 1a5b12aa5da2c718848d3cc5d9bce7bfcdeacf54 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Thu, 18 Apr 2019 15:13:19 +0200 Subject: 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 --- sw/source/filter/xml/XMLRedlineImportHelper.cxx | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'sw/source/filter/xml/XMLRedlineImportHelper.cxx') diff --git a/sw/source/filter/xml/XMLRedlineImportHelper.cxx b/sw/source/filter/xml/XMLRedlineImportHelper.cxx index d78e7e6b4849..ee3563c497a1 100644 --- a/sw/source/filter/xml/XMLRedlineImportHelper.cxx +++ b/sw/source/filter/xml/XMLRedlineImportHelper.cxx @@ -418,12 +418,8 @@ void XMLRedlineImportHelper::Add( pInfo->bMergeLastParagraph = bMergeLastPara; // ad 3) - if (aRedlineMap.end() == aRedlineMap.find(rId)) - { - // 3a) insert into map - aRedlineMap[rId] = pInfo; - } - else + auto itPair = aRedlineMap.emplace(rId, pInfo); + if (!itPair.second) { // 3b) we already have a redline with this name: hierarchical redlines // insert pInfo as last element in the chain. @@ -431,7 +427,7 @@ void XMLRedlineImportHelper::Add( // find last element RedlineInfo* pInfoChain; - for( pInfoChain = aRedlineMap[rId]; + for( pInfoChain = itPair.first->second; nullptr != pInfoChain->pNextRedline; pInfoChain = pInfoChain->pNextRedline) ; // empty loop -- cgit