Skip to content

Commit 6e81c1f

Browse files
committed
Prevent reading tag file multiple times
Prevent the reading of a tag file multiple times (as already done for e.g INPUT files) as this might lead to warnings like (example from CGAL): ``` .../doc_tags/BGL.tag:2569: warning: Duplicate anchor fig__regularization_fig found ```
1 parent a928976 commit 6e81c1f

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

src/doxygen.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ FileNameLinkedMap *Doxygen::mscFileNameLinkedMap = 0; // msc files
145145
FileNameLinkedMap *Doxygen::diaFileNameLinkedMap = 0; // dia files
146146
StringUnorderedMap Doxygen::namespaceAliasMap; // all namespace aliases
147147
StringMap Doxygen::tagDestinationMap; // all tag locations
148+
std::vector<QCString> Doxygen::tagFileVector; // all tag file names
148149
StringUnorderedSet Doxygen::expandAsDefinedSet; // all macros that should be expanded
149150
MemberGroupInfoMap Doxygen::memberGroupInfoMap; // dictionary of the member groups heading
150151
std::unique_ptr<PageDef> Doxygen::mainPage;
@@ -9781,9 +9782,6 @@ static void readTagFile(const std::shared_ptr<Entry> &root,const QCString &tagLi
97819782
fileName = tagLine.left(eqPos).stripWhiteSpace();
97829783
destName = tagLine.right(tagLine.length()-eqPos-1).stripWhiteSpace();
97839784
if (fileName.isEmpty() || destName.isEmpty()) return;
9784-
FileInfo fi(fileName.str());
9785-
Doxygen::tagDestinationMap.insert(
9786-
std::make_pair(fi.absFilePath(), destName.str()));
97879785
//printf("insert tagDestination %s->%s\n",qPrint(fi.fileName()),qPrint(destName));
97889786
}
97899787
else
@@ -9799,8 +9797,16 @@ static void readTagFile(const std::shared_ptr<Entry> &root,const QCString &tagLi
97999797
return;
98009798
}
98019799

9800+
if (std::find(Doxygen::tagFileVector.begin(), Doxygen::tagFileVector.end(), fi.absFilePath().c_str()) != Doxygen::tagFileVector.end()) return;
9801+
9802+
Doxygen::tagFileVector.push_back(fi.absFilePath());
9803+
98029804
if (!destName.isEmpty())
9805+
{
9806+
Doxygen::tagDestinationMap.insert(
9807+
std::make_pair(fi.absFilePath(), destName.str()));
98039808
msg("Reading tag file '%s', location '%s'...\n",qPrint(fileName),qPrint(destName));
9809+
}
98049810
else
98059811
msg("Reading tag file '%s'...\n",qPrint(fileName));
98069812

src/doxygen.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ class Doxygen
104104
static GroupLinkedMap *groupLinkedMap;
105105
static NamespaceLinkedMap *namespaceLinkedMap;
106106
static StringMap tagDestinationMap;
107+
static std::vector<QCString> tagFileVector;
107108
static MemberGroupInfoMap memberGroupInfoMap;
108109
static StringUnorderedSet expandAsDefinedSet;
109110
static std::unique_ptr<NamespaceDef> globalNamespaceDef;

0 commit comments

Comments
 (0)