summaryrefslogtreecommitdiffstats
path: root/src/groupdef.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/groupdef.cpp')
-rw-r--r--src/groupdef.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/groupdef.cpp b/src/groupdef.cpp
index 0f87ab8..e2e1940 100644
--- a/src/groupdef.cpp
+++ b/src/groupdef.cpp
@@ -198,6 +198,7 @@ bool GroupDef::insertMember(MemberDef *md,bool docOnly)
for ( ; (srcMi=srcMnii.current()) ; ++srcMnii )
{
MemberDef *srcMd = srcMi->memberDef;
+ if (srcMd==md) return FALSE; // already added before!
bool sameScope = srcMd->getOuterScope()==md->getOuterScope() || // same class or namespace
// both inside a file => definition and declaration do not have to be in the same file
@@ -208,8 +209,15 @@ bool GroupDef::insertMember(MemberDef *md,bool docOnly)
sameScope
)
{
- md->setGroupAlias(srcMd);
- return FALSE; // member already added
+ if (srcMd->getGroupAlias()==0)
+ {
+ md->setGroupAlias(srcMd);
+ }
+ else
+ {
+ md->setGroupAlias(srcMd->getGroupAlias());
+ }
+ return FALSE; // member is the same as one that is already added
}
}
mni->append(new MemberInfo(md,md->protection(),md->virtualness(),FALSE));