diff options
Diffstat (limited to 'src/groupdef.cpp')
-rw-r--r-- | src/groupdef.cpp | 12 |
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)); |