diff options
author | Dimitri van Heesch <doxygen@gmail.com> | 2021-05-25 18:42:08 (GMT) |
---|---|---|
committer | Dimitri van Heesch <doxygen@gmail.com> | 2021-05-25 18:42:08 (GMT) |
commit | 20c7a167d1cb6fb024d740538261b37b8e32d511 (patch) | |
tree | 1e1691e1d5e63247c88fe9e52c717efba777cda1 | |
parent | 9824d2d82ae63c68251645a8c292dd617b4e72c5 (diff) | |
download | Doxygen-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.cpp | 12 |
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()) && |