summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2021-05-25 18:42:08 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2021-05-25 18:42:08 (GMT)
commit20c7a167d1cb6fb024d740538261b37b8e32d511 (patch)
tree1e1691e1d5e63247c88fe9e52c717efba777cda1
parent9824d2d82ae63c68251645a8c292dd617b4e72c5 (diff)
downloadDoxygen-20c7a167d1cb6fb024d740538261b37b8e32d511.zip
Doxygen-20c7a167d1cb6fb024d740538261b37b8e32d511.tar.gz
Doxygen-20c7a167d1cb6fb024d740538261b37b8e32d511.tar.bz2
Fixed problem where processing symlinks could result in ASSERT: "fd!=0"
-rw-r--r--src/doxygen.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index b9cee8d..a54be26 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -9918,19 +9918,21 @@ static void readDir(FileInfo *fi,
)
{
std::string name=cfi.fileName();
+ std::string path=cfi.dirPath()+"/";
+ std::string fullName=path+name;
if (fnMap)
{
- std::unique_ptr<FileDef> fd { createFileDef(QCString(cfi.dirPath()+"/"),QCString(name)) };
+ std::unique_ptr<FileDef> fd { createFileDef(QCString(path),QCString(name)) };
FileName *fn=0;
if (!name.empty())
{
- fn = fnMap->add(QCString(name),QCString(cfi.absFilePath()));
+ fn = fnMap->add(QCString(name),QCString(fullName));
fn->push_back(std::move(fd));
}
}
- if (resultList) resultList->push_back(cfi.absFilePath());
- if (resultSet) resultSet->insert(cfi.absFilePath());
- if (killSet) killSet->insert(cfi.absFilePath());
+ if (resultList) resultList->push_back(fullName);
+ if (resultSet) resultSet->insert(fullName);
+ if (killSet) killSet->insert(fullName);
}
else if (recursive &&
(!Config_getBool(EXCLUDE_SYMLINKS) || !cfi.isSymLink()) &&