qdoc: don't hold Location in QLists, don't even copy it
Location is a self-referential type that is very expensive to copy. So don't. Instead, just remember the iterator, and use value()->location() (which returns a reference, so doesn't copy). Change-Id: I9a2b72b05b8051e793cf67179a0195f2f3551a10 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
This commit is contained in:
parent
792f68adea
commit
831a7e06c0
@ -1142,18 +1142,15 @@ const DocumentNode* Tree::findDocumentNodeByTitle(const QString& title) const
|
||||
DocumentNodeMultiMap::const_iterator j = i;
|
||||
++j;
|
||||
if (j != docNodesByTitle_.constEnd() && j.key() == i.key()) {
|
||||
QList<Location> internalLocations;
|
||||
while (j != docNodesByTitle_.constEnd()) {
|
||||
if (j.key() == i.key() && j.value()->url().isEmpty()) {
|
||||
internalLocations.append(j.value()->location());
|
||||
break; // Just report one duplicate for now.
|
||||
}
|
||||
++j;
|
||||
}
|
||||
if (internalLocations.size() > 0) {
|
||||
if (j != docNodesByTitle_.cend()) {
|
||||
i.value()->location().warning("This page title exists in more than one file: " + title);
|
||||
foreach (const Location &location, internalLocations)
|
||||
location.warning("[It also exists here]");
|
||||
j.value()->location().warning("[It also exists here]");
|
||||
}
|
||||
}
|
||||
return i.value();
|
||||
|
Loading…
Reference in New Issue
Block a user