summaryrefslogtreecommitdiffstats
path: root/src/groupdef.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2015-01-03 22:33:28 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2015-01-03 22:33:28 (GMT)
commitb75af9180ae53f7c7abb94ccf906333169247785 (patch)
treea3e1113380e53d7fd40c95135d163be4c65bb3f8 /src/groupdef.cpp
parentfcc8e1f75c7c1a2ccb5ab6e42d3b6843589dc764 (diff)
downloadDoxygen-b75af9180ae53f7c7abb94ccf906333169247785.zip
Doxygen-b75af9180ae53f7c7abb94ccf906333169247785.tar.gz
Doxygen-b75af9180ae53f7c7abb94ccf906333169247785.tar.bz2
Bug 742235 - Bogus message with addtogroup
Diffstat (limited to 'src/groupdef.cpp')
-rw-r--r--src/groupdef.cpp26
1 files changed, 9 insertions, 17 deletions
diff --git a/src/groupdef.cpp b/src/groupdef.cpp
index 5c08048..64a3902 100644
--- a/src/groupdef.cpp
+++ b/src/groupdef.cpp
@@ -508,29 +508,21 @@ void GroupDef::removeMember(MemberDef *md)
}
}
-bool GroupDef::containsGroup(const GroupDef *def)
+bool GroupDef::findGroup(const GroupDef *def) const
{
if (this==def)
{
return TRUE;
}
- else if (groupList->find(def)>=0)
+ else if (groupList)
{
- return TRUE;
- }
- else // look for subgroups as well
- {
- GroupList *groups = partOfGroups();
- if (groups)
+ GroupListIterator it(*groupList);
+ GroupDef *gd;
+ for (;(gd=it.current());++it)
{
- GroupListIterator it(*groups);
- GroupDef *gd;
- for (;(gd=it.current());++it)
+ if (gd->findGroup(def))
{
- if (gd->containsGroup(def))
- {
- return TRUE;
- }
+ return TRUE;
}
}
}
@@ -1377,12 +1369,12 @@ void addGroupToGroups(Entry *root,GroupDef *subGroup)
warn(root->fileName,root->startLine,"Refusing to add group %s to itself",
gd->name().data());
}
- else if (gd->containsGroup(subGroup))
+ else if (subGroup->findGroup(gd))
{
warn(root->fileName,root->startLine,"Refusing to add group %s to group %s, since the latter is already a "
"subgroup of the former\n", subGroup->name().data(),gd->name().data());
}
- else
+ else if (!gd->findGroup(subGroup))
{
gd->addGroup(subGroup);
subGroup->makePartOfGroup(gd);