summaryrefslogtreecommitdiffstats
path: root/src/docgroup.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2020-01-26 15:07:32 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2020-01-26 15:07:32 (GMT)
commit8d49c7c40e59970565872f666e2110755cac7828 (patch)
treee2fd095f7aa69d3768ad61ef54a8d99d3acc8cc3 /src/docgroup.cpp
parentd0a664e8d46808df68fb6a29b2d76f4c6b22a85c (diff)
downloadDoxygen-8d49c7c40e59970565872f666e2110755cac7828.zip
Doxygen-8d49c7c40e59970565872f666e2110755cac7828.tar.gz
Doxygen-8d49c7c40e59970565872f666e2110755cac7828.tar.bz2
Move DocGroup inside CommentScanner instead of using a global
Diffstat (limited to 'src/docgroup.cpp')
-rw-r--r--src/docgroup.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/docgroup.cpp b/src/docgroup.cpp
index fbdb842..d82d1b3 100644
--- a/src/docgroup.cpp
+++ b/src/docgroup.cpp
@@ -13,12 +13,14 @@
*
*/
+#include <atomic>
#include "doxygen.h"
#include "util.h"
#include "entry.h"
#include "message.h"
#include "docgroup.h"
+static std::atomic_int g_groupId;
void DocGroup::enterFile(const char *fileName,int)
{
@@ -84,7 +86,7 @@ void DocGroup::leaveCompound(const char *,int,const char * /*name*/)
m_compoundName.resize(0);
}
-int DocGroup::findExistingGroup(int &groupId,const MemberGroupInfo *info)
+int DocGroup::findExistingGroup(const MemberGroupInfo *info)
{
//printf("findExistingGroup %s:%s\n",info->header.data(),info->compoundName.data());
QIntDictIterator<MemberGroupInfo> di(Doxygen::memGrpInfoDict);
@@ -100,8 +102,7 @@ int DocGroup::findExistingGroup(int &groupId,const MemberGroupInfo *info)
return (int)di.currentKey(); // put the item in this group
}
}
- groupId++; // start new group
- return groupId;
+ return ++g_groupId; // start new group
}
void DocGroup::open(Entry *e,const char *,int, bool implicit)
@@ -118,12 +119,10 @@ void DocGroup::open(Entry *e,const char *,int, bool implicit)
//printf(" membergroup id=%d %s\n",m_memberGroupId,m_memberGroupHeader.data());
if (m_memberGroupId==DOX_NOGROUP) // no group started yet
{
- static int curGroupId=0;
-
MemberGroupInfo *info = new MemberGroupInfo;
info->header = m_memberGroupHeader.stripWhiteSpace();
info->compoundName = m_compoundName;
- m_memberGroupId = findExistingGroup(curGroupId,info);
+ m_memberGroupId = findExistingGroup(info);
//printf(" use membergroup %d\n",m_memberGroupId);
Doxygen::memGrpInfoDict.insert(m_memberGroupId,info);