summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2021-01-04 15:23:04 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2021-01-04 15:23:04 (GMT)
commit0096c00ac4afc232f7cb9b57ed6cbd392956eb22 (patch)
treef2493e4f41d0bfe2105facffdd3c46287bf516ab
parentd37c654efbd5bb4ea19e1997d1daccb0b01de8b3 (diff)
downloadDoxygen-0096c00ac4afc232f7cb9b57ed6cbd392956eb22.zip
Doxygen-0096c00ac4afc232f7cb9b57ed6cbd392956eb22.tar.gz
Doxygen-0096c00ac4afc232f7cb9b57ed6cbd392956eb22.tar.bz2
Revert "Refactoring: Embed MemberGroup objects directly in their container"
This reverts commit d37c654efbd5bb4ea19e1997d1daccb0b01de8b3.
-rw-r--r--src/classdef.cpp64
-rw-r--r--src/context.cpp10
-rw-r--r--src/dotnode.cpp4
-rw-r--r--src/filedef.cpp38
-rw-r--r--src/groupdef.cpp28
-rw-r--r--src/membergroup.h10
-rw-r--r--src/namespacedef.cpp34
-rw-r--r--src/perlmodgen.cpp8
-rw-r--r--src/sqlite3gen.cpp16
-rw-r--r--src/util.cpp18
-rw-r--r--src/xmlgen.cpp16
11 files changed, 120 insertions, 126 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp
index ea24c45..5a3c75d 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -858,12 +858,12 @@ void ClassDefImpl::addMembersToMemberGroup()
}
// add members inside sections to their groups
- for (auto &mg : m_impl->memberGroups)
+ for (const auto &mg : m_impl->memberGroups)
{
- if (mg.allMembersInSameSection() && m_impl->subGrouping)
+ if (mg->allMembersInSameSection() && m_impl->subGrouping)
{
//printf("addToDeclarationSection(%s)\n",mg->header().data());
- mg.addToDeclarationSection();
+ mg->addToDeclarationSection();
}
}
}
@@ -1173,17 +1173,17 @@ void ClassDefImpl::computeAnchors()
}
}
- for (auto &mg : m_impl->memberGroups)
+ for (const auto &mg : m_impl->memberGroups)
{
- mg.setAnchors();
+ mg->setAnchors();
}
}
void ClassDefImpl::distributeMemberGroupDocumentation()
{
- for (auto &mg : m_impl->memberGroups)
+ for (const auto &mg : m_impl->memberGroups)
{
- mg.distributeMemberGroupDocumentation();
+ mg->distributeMemberGroupDocumentation();
}
}
@@ -1191,9 +1191,9 @@ void ClassDefImpl::findSectionsInDocumentation()
{
docFindSections(briefDescription(),this,docFile());
docFindSections(documentation(),this,docFile());
- for (auto &mg : m_impl->memberGroups)
+ for (const auto &mg : m_impl->memberGroups)
{
- mg.findSectionsInDocumentation(this);
+ mg->findSectionsInDocumentation(this);
}
for (auto &ml : m_impl->memberLists)
{
@@ -1968,9 +1968,9 @@ void ClassDefImpl::writeMemberGroups(OutputList &ol,bool showInline) const
// write user defined member groups
for (const auto &mg : m_impl->memberGroups)
{
- if (!mg.allMembersInSameSection() || !m_impl->subGrouping) // group is in its own section
+ if (!mg->allMembersInSameSection() || !m_impl->subGrouping) // group is in its own section
{
- mg.writeDeclarations(ol,this,0,0,0,showInline);
+ mg->writeDeclarations(ol,this,0,0,0,showInline);
}
else // add this group to the corresponding member section
{
@@ -2185,9 +2185,9 @@ void ClassDefImpl::writeTagFile(FTextStream &tagFile)
break;
case LayoutDocEntry::MemberGroups:
{
- for (auto &mg : m_impl->memberGroups)
+ for (const auto &mg : m_impl->memberGroups)
{
- mg.writeTagFile(tagFile);
+ mg->writeTagFile(tagFile);
}
}
break;
@@ -3270,10 +3270,10 @@ void ClassDefImpl::writeDeclaration(OutputList &ol,const MemberDef *md,bool inGr
ol.endMemberItem();
// write user defined member groups
- for (auto &mg : m_impl->memberGroups)
+ for (const auto &mg : m_impl->memberGroups)
{
- mg.setInGroup(inGroup);
- mg.writePlainDeclarations(ol,this,0,0,0,inheritedFrom,inheritId);
+ mg->setInGroup(inGroup);
+ mg->writePlainDeclarations(ol,this,0,0,0,inheritedFrom,inheritId);
}
QListIterator<LayoutDocEntry> eli(
@@ -4163,9 +4163,9 @@ void ClassDefImpl::addListReferences()
this
);
}
- for (auto &mg : m_impl->memberGroups)
+ for (const auto &mg : m_impl->memberGroups)
{
- mg.addListReferences(this);
+ mg->addListReferences(this);
}
for (auto &ml : m_impl->memberLists)
{
@@ -4275,10 +4275,10 @@ int ClassDefImpl::countMemberDeclarations(MemberListType lt,const ClassDef *inhe
// also include grouped members that have their own section in the class (see bug 722759)
if (inheritedFrom)
{
- for (auto &mg : m_impl->memberGroups)
+ for (const auto &mg : m_impl->memberGroups)
{
- count+=mg.countGroupedInheritedMembers(lt);
- if (lt2!=1) count+=mg.countGroupedInheritedMembers((MemberListType)lt2);
+ count+=mg->countGroupedInheritedMembers(lt);
+ if (lt2!=1) count+=mg->countGroupedInheritedMembers((MemberListType)lt2);
}
}
static bool inlineInheritedMembers = Config_getBool(INLINE_INHERITED_MEMB);
@@ -4309,9 +4309,9 @@ void ClassDefImpl::setAnonymousEnumType()
}
else if (lde->kind()==LayoutDocEntry::MemberGroups)
{
- for (auto &mg : m_impl->memberGroups)
+ for (const auto &mg : m_impl->memberGroups)
{
- mg.setAnonymousEnumType();
+ mg->setAnonymousEnumType();
}
}
}
@@ -4324,10 +4324,10 @@ void ClassDefImpl::countMembers()
ml.countDecMembers();
ml.countDocMembers();
}
- for (auto &mg : m_impl->memberGroups)
+ for (const auto &mg : m_impl->memberGroups)
{
- mg.countDecMembers();
- mg.countDocMembers();
+ mg->countDecMembers();
+ mg->countDocMembers();
}
}
@@ -4445,13 +4445,13 @@ int ClassDefImpl::countMembersIncludingGrouped(MemberListType lt,
count=ml->countInheritableMembers(inheritedFrom);
}
//printf("%s:countMembersIncludingGrouped: count=%d\n",name().data(),count);
- for (auto &mg : m_impl->memberGroups)
+ for (const auto &mg : m_impl->memberGroups)
{
- bool hasOwnSection = !mg.allMembersInSameSection() ||
+ bool hasOwnSection = !mg->allMembersInSameSection() ||
!m_impl->subGrouping; // group is in its own section
if ((additional && hasOwnSection) || (!additional && !hasOwnSection))
{
- count+=mg.countGroupedInheritedMembers(lt);
+ count+=mg->countGroupedInheritedMembers(lt);
}
}
//printf("%s:countMembersIncludingGrouped(lt=%d,%s)=%d\n",
@@ -4556,11 +4556,11 @@ void ClassDefImpl::addGroupedInheritedMembers(OutputList &ol,MemberListType lt,
const ClassDef *inheritedFrom,const QCString &inheritId) const
{
//printf("** %s::addGroupedInheritedMembers(%p) inheritId=%s\n",name().data(),m_impl->memberGroupSDict,inheritId.data());
- for (auto &mg : m_impl->memberGroups)
+ for (const auto &mg : m_impl->memberGroups)
{
- if (!mg.allMembersInSameSection() || !m_impl->subGrouping) // group is in its own section
+ if (!mg->allMembersInSameSection() || !m_impl->subGrouping) // group is in its own section
{
- mg.addGroupedInheritedMembers(ol,this,lt,inheritedFrom,inheritId);
+ mg->addGroupedInheritedMembers(ol,this,lt,inheritedFrom,inheritId);
}
}
}
diff --git a/src/context.cpp b/src/context.cpp
index b8d477f..95fb82d 100644
--- a/src/context.cpp
+++ b/src/context.cpp
@@ -8857,9 +8857,9 @@ MemberGroupListContext::MemberGroupListContext(const Definition *def,const QCStr
p = new Private;
for (const auto &mg : list)
{
- if (!mg.allMembersInSameSection() || !subGrouping)
+ if (!mg->allMembersInSameSection() || !subGrouping)
{
- p->addMemberGroup(def,relPath,&mg);
+ p->addMemberGroup(def,relPath,mg.get());
}
}
}
@@ -9131,13 +9131,13 @@ class InheritedMemberInfoListContext::Private : public GenericNodeListContext
// addMemberGroupsOfGroup?
for (const auto &mg: cd->getMemberGroups())
{
- if (mg.members() && (!mg.allMembersInSameSection() || !cd->subGrouping())) // group is in its own section
+ if (mg->members() && (!mg->allMembersInSameSection() || !cd->subGrouping())) // group is in its own section
{
- MemberListIterator li(*mg.members());
+ MemberListIterator li(*mg->members());
MemberDef *md;
for (li.toFirst();(md=li.current());++li)
{
- if (lt==md->getSectionList(mg.container())->listType() &&
+ if (lt==md->getSectionList(mg->container())->listType() &&
!md->isReimplementedBy(inheritedFrom) &&
md->isBriefSectionVisible())
{
diff --git a/src/dotnode.cpp b/src/dotnode.cpp
index ce6bada..06de5f4 100644
--- a/src/dotnode.cpp
+++ b/src/dotnode.cpp
@@ -481,9 +481,9 @@ void DotNode::writeBox(FTextStream &t,
{
for (const auto &mg : m_classDef->getMemberGroups())
{
- if (mg.members())
+ if (mg->members())
{
- writeBoxMemberList(t,'*',mg.members(),m_classDef,FALSE,&arrowNames);
+ writeBoxMemberList(t,'*',mg->members(),m_classDef,FALSE,&arrowNames);
}
}
}
diff --git a/src/filedef.cpp b/src/filedef.cpp
index d98594c..917af49 100644
--- a/src/filedef.cpp
+++ b/src/filedef.cpp
@@ -280,9 +280,9 @@ void FileDefImpl::computeAnchors()
void FileDefImpl::distributeMemberGroupDocumentation()
{
//printf("FileDefImpl::distributeMemberGroupDocumentation()\n");
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- mg.distributeMemberGroupDocumentation();
+ mg->distributeMemberGroupDocumentation();
}
}
@@ -290,9 +290,9 @@ void FileDefImpl::findSectionsInDocumentation()
{
docFindSections(briefDescription(),this,docFile());
docFindSections(documentation(),this,docFile());
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- mg.findSectionsInDocumentation(this);
+ mg->findSectionsInDocumentation(this);
}
for (auto &ml : m_memberLists)
@@ -395,9 +395,9 @@ void FileDefImpl::writeTagFile(FTextStream &tagFile)
break;
case LayoutDocEntry::MemberGroups:
{
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- mg.writeTagFile(tagFile);
+ mg->writeTagFile(tagFile);
}
}
break;
@@ -732,10 +732,10 @@ void FileDefImpl::writeMemberGroups(OutputList &ol)
/* write user defined member groups */
for (const auto &mg : m_memberGroups)
{
- if ((!mg.allMembersInSameSection() || !m_subGrouping)
- && mg.header()!="[NOHEADER]")
+ if ((!mg->allMembersInSameSection() || !m_subGrouping)
+ && mg->header()!="[NOHEADER]")
{
- mg.writeDeclarations(ol,0,0,this,0);
+ mg->writeDeclarations(ol,0,0,this,0);
}
}
}
@@ -1247,12 +1247,12 @@ void FileDefImpl::addMembersToMemberGroup()
}
// add members inside sections to their groups
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- if (mg.allMembersInSameSection() && m_subGrouping)
+ if (mg->allMembersInSameSection() && m_subGrouping)
{
//printf("----> addToDeclarationSection(%s)\n",mg->header().data());
- mg.addToDeclarationSection();
+ mg->addToDeclarationSection();
}
}
}
@@ -1529,9 +1529,9 @@ void FileDefImpl::addListReferences()
0
);
}
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- mg.addListReferences(this);
+ mg->addListReferences(this);
}
for (auto &ml : m_memberLists)
{
@@ -1907,9 +1907,9 @@ void FileDefImpl::sortMemberLists()
if (ml.needsSorting()) { ml.sort(); ml.setNeedsSorting(FALSE); }
}
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- MemberList *mlg = mg.members();
+ MemberList *mlg = mg->members();
if (mlg->needsSorting()) { mlg->sort(); mlg->setNeedsSorting(FALSE); }
}
@@ -2032,10 +2032,10 @@ void FileDefImpl::countMembers()
ml.countDecMembers();
ml.countDocMembers();
}
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- mg.countDecMembers();
- mg.countDocMembers();
+ mg->countDecMembers();
+ mg->countDocMembers();
}
}
diff --git a/src/groupdef.cpp b/src/groupdef.cpp
index 9a48db4..53a24f2 100644
--- a/src/groupdef.cpp
+++ b/src/groupdef.cpp
@@ -208,9 +208,9 @@ void GroupDefImpl::setGroupTitle( const char *t )
void GroupDefImpl::distributeMemberGroupDocumentation()
{
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- mg.distributeMemberGroupDocumentation();
+ mg->distributeMemberGroupDocumentation();
}
}
@@ -219,9 +219,9 @@ void GroupDefImpl::findSectionsInDocumentation()
docFindSections(briefDescription(),this,docFile());
docFindSections(documentation(),this,docFile());
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- mg.findSectionsInDocumentation(this);
+ mg->findSectionsInDocumentation(this);
}
for (auto &ml : m_memberLists)
@@ -301,9 +301,9 @@ void GroupDefImpl::addMembersToMemberGroup()
}
//printf("GroupDefImpl::addMembersToMemberGroup() memberGroupList=%d\n",memberGroupList->count());
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- mg.setInGroup(TRUE);
+ mg->setInGroup(TRUE);
}
}
@@ -572,10 +572,10 @@ void GroupDefImpl::countMembers()
ml.countDecMembers();
ml.countDocMembers();
}
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- mg.countDecMembers();
- mg.countDocMembers();
+ mg->countDecMembers();
+ mg->countDocMembers();
}
}
@@ -696,9 +696,9 @@ void GroupDefImpl::writeTagFile(FTextStream &tagFile)
break;
case LayoutDocEntry::MemberGroups:
{
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- mg.writeTagFile(tagFile);
+ mg->writeTagFile(tagFile);
}
}
break;
@@ -978,7 +978,7 @@ void GroupDefImpl::writeMemberGroups(OutputList &ol)
/* write user defined member groups */
for (const auto &mg : m_memberGroups)
{
- mg.writeDeclarations(ol,0,0,0,this);
+ mg->writeDeclarations(ol,0,0,0,this);
}
}
@@ -1528,9 +1528,9 @@ void GroupDefImpl::addListReferences()
0
);
}
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- mg.addListReferences(this);
+ mg->addListReferences(this);
}
for (auto &ml : m_memberLists)
{
diff --git a/src/membergroup.h b/src/membergroup.h
index 20c03d6..5b0c621 100644
--- a/src/membergroup.h
+++ b/src/membergroup.h
@@ -108,15 +108,7 @@ class MemberGroup
};
using MemberGroupRefList = std::vector<MemberGroup *>;
-
-class MemberGroupList : public std::vector<MemberGroup>
-{
- public:
- MemberGroupList() = default;
- private:
- MemberGroupList(const MemberGroupList &) = delete;
- MemberGroupList &operator=(const MemberGroupList &) = delete;
-};
+using MemberGroupList = std::vector< std::unique_ptr<MemberGroup> >;
/** Data collected for a member group */
struct MemberGroupInfo
diff --git a/src/namespacedef.cpp b/src/namespacedef.cpp
index 507e30b..f1ac814 100644
--- a/src/namespacedef.cpp
+++ b/src/namespacedef.cpp
@@ -303,9 +303,9 @@ void NamespaceDefImpl::setFileName(const QCString &fn)
void NamespaceDefImpl::distributeMemberGroupDocumentation()
{
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- mg.distributeMemberGroupDocumentation();
+ mg->distributeMemberGroupDocumentation();
}
}
@@ -313,9 +313,9 @@ void NamespaceDefImpl::findSectionsInDocumentation()
{
docFindSections(briefDescription(),this,docFile());
docFindSections(documentation(),this,docFile());
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- mg.findSectionsInDocumentation(this);
+ mg->findSectionsInDocumentation(this);
}
for (auto &ml : m_memberLists)
{
@@ -391,12 +391,12 @@ void NamespaceDefImpl::addMembersToMemberGroup()
}
// add members inside sections to their groups
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- if (mg.allMembersInSameSection() && m_subGrouping)
+ if (mg->allMembersInSameSection() && m_subGrouping)
{
//printf("----> addToDeclarationSection(%s)\n",mg->header().data());
- mg.addToDeclarationSection();
+ mg->addToDeclarationSection();
}
}
}
@@ -597,9 +597,9 @@ void NamespaceDefImpl::writeTagFile(FTextStream &tagFile)
break;
case LayoutDocEntry::MemberGroups:
{
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- mg.writeTagFile(tagFile);
+ mg->writeTagFile(tagFile);
}
}
break;
@@ -763,10 +763,10 @@ void NamespaceDefImpl::writeMemberGroups(OutputList &ol)
/* write user defined member groups */
for (const auto &mg : m_memberGroups)
{
- if ((!mg.allMembersInSameSection() || !m_subGrouping)
- && mg.header()!="[NOHEADER]")
+ if ((!mg->allMembersInSameSection() || !m_subGrouping)
+ && mg->header()!="[NOHEADER]")
{
- mg.writeDeclarations(ol,0,this,0,0);
+ mg->writeDeclarations(ol,0,this,0,0);
}
}
}
@@ -1108,10 +1108,10 @@ void NamespaceDefImpl::countMembers()
ml.countDecMembers();
ml.countDocMembers();
}
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- mg.countDecMembers();
- mg.countDocMembers();
+ mg->countDecMembers();
+ mg->countDocMembers();
}
}
@@ -1170,9 +1170,9 @@ void NamespaceDefImpl::addListReferences()
this
);
}
- for (auto &mg : m_memberGroups)
+ for (const auto &mg : m_memberGroups)
{
- mg.addListReferences(this);
+ mg->addListReferences(this);
}
for (auto &ml : m_memberLists)
{
diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp
index 688394b..854b3df 100644
--- a/src/perlmodgen.cpp
+++ b/src/perlmodgen.cpp
@@ -1784,13 +1784,13 @@ void PerlModGenerator::generatePerlUserDefinedSection(const Definition *d, const
for (const auto &mg : mgl)
{
m_output.openHash();
- if (mg.header())
- m_output.addFieldQuotedString("header", mg.header());
+ if (mg->header())
+ m_output.addFieldQuotedString("header", mg->header());
- if (mg.members())
+ if (mg->members())
{
m_output.openList("members");
- MemberListIterator mli(*mg.members());
+ MemberListIterator mli(*mg->members());
const MemberDef *md;
for (mli.toFirst(); (md = mli.current()); ++mli)
{
diff --git a/src/sqlite3gen.cpp b/src/sqlite3gen.cpp
index 33005a4..eb5da5e 100644
--- a/src/sqlite3gen.cpp
+++ b/src/sqlite3gen.cpp
@@ -2007,8 +2007,8 @@ static void generateSqlite3ForClass(const ClassDef *cd)
// + member groups
for (const auto &mg : cd->getMemberGroups())
{
- generateSqlite3Section(cd,mg.members(),refid,"user-defined",mg.header(),
- mg.documentation());
+ generateSqlite3Section(cd,mg->members(),refid,"user-defined",mg->header(),
+ mg->documentation());
}
// this is just a list of *local* members
@@ -2064,8 +2064,8 @@ static void generateSqlite3ForNamespace(const NamespaceDef *nd)
// + member groups
for (const auto &mg : nd->getMemberGroups())
{
- generateSqlite3Section(nd,mg.members(),refid,"user-defined",mg.header(),
- mg.documentation());
+ generateSqlite3Section(nd,mg->members(),refid,"user-defined",mg->header(),
+ mg->documentation());
}
// + normal members
@@ -2219,8 +2219,8 @@ static void generateSqlite3ForFile(const FileDef *fd)
// + member groups
for (const auto &mg : fd->getMemberGroups())
{
- generateSqlite3Section(fd,mg.members(),refid,"user-defined",mg.header(),
- mg.documentation());
+ generateSqlite3Section(fd,mg->members(),refid,"user-defined",mg->header(),
+ mg->documentation());
}
// + normal members
@@ -2286,8 +2286,8 @@ static void generateSqlite3ForGroup(const GroupDef *gd)
// + member groups
for (const auto &mg : gd->getMemberGroups())
{
- generateSqlite3Section(gd,mg.members(),refid,"user-defined",mg.header(),
- mg.documentation());
+ generateSqlite3Section(gd,mg->members(),refid,"user-defined",mg->header(),
+ mg->documentation());
}
// + members
diff --git a/src/util.cpp b/src/util.cpp
index 475afa2..665df8b 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -4403,23 +4403,24 @@ void addMembersToMemberGroup(MemberList *ml,
auto mg_it = std::find_if(pMemberGroups->begin(),
pMemberGroups->end(),
[&groupId](const auto &g)
- { return g.groupId()==groupId; }
+ { return g->groupId()==groupId; }
);
MemberGroup *mg_ptr = 0;
if (mg_it==pMemberGroups->end())
{
- pMemberGroups->emplace_back(
+ auto mg = std::make_unique<MemberGroup>(
context,
groupId,
info->header,
info->doc,
info->docFile,
info->docLine);
- mg_ptr = &pMemberGroups->back();
+ mg_ptr = mg.get();
+ pMemberGroups->push_back(std::move(mg));
}
else
{
- mg_ptr = &(*mg_it);
+ mg_ptr = (*mg_it).get();
}
mg_ptr->insertMember(fmd); // insert in member group
fmd->setMemberGroup(mg_ptr);
@@ -4438,23 +4439,24 @@ void addMembersToMemberGroup(MemberList *ml,
auto mg_it = std::find_if(pMemberGroups->begin(),
pMemberGroups->end(),
[&groupId](const auto &g)
- { return g.groupId()==groupId; }
+ { return g->groupId()==groupId; }
);
MemberGroup *mg_ptr = 0;
if (mg_it==pMemberGroups->end())
{
- pMemberGroups->emplace_back(
+ auto mg = std::make_unique<MemberGroup>(
context,
groupId,
info->header,
info->doc,
info->docFile,
info->docLine);
- mg_ptr = &pMemberGroups->back();
+ mg_ptr = mg.get();
+ pMemberGroups->push_back(std::move(mg));
}
else
{
- mg_ptr = &(*mg_it);
+ mg_ptr = (*mg_it).get();
}
md = ml->take(index); // remove from member list
mg_ptr->insertMember(md->resolveAlias()); // insert in member group
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index b8422a4..1831a98 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -1357,8 +1357,8 @@ static void generateXMLForClass(const ClassDef *cd,FTextStream &ti)
writeTemplateList(cd,t);
for (const auto &mg : cd->getMemberGroups())
{
- generateXMLSection(cd,ti,t,mg.members(),"user-defined",mg.header(),
- mg.documentation());
+ generateXMLSection(cd,ti,t,mg->members(),"user-defined",mg->header(),
+ mg->documentation());
}
for (const auto &ml : cd->getMemberLists())
@@ -1454,8 +1454,8 @@ static void generateXMLForNamespace(const NamespaceDef *nd,FTextStream &ti)
for (const auto &mg : nd->getMemberGroups())
{
- generateXMLSection(nd,ti,t,mg.members(),"user-defined",mg.header(),
- mg.documentation());
+ generateXMLSection(nd,ti,t,mg->members(),"user-defined",mg->header(),
+ mg->documentation());
}
for (const auto &ml : nd->getMemberLists())
@@ -1578,8 +1578,8 @@ static void generateXMLForFile(FileDef *fd,FTextStream &ti)
for (const auto &mg : fd->getMemberGroups())
{
- generateXMLSection(fd,ti,t,mg.members(),"user-defined",mg.header(),
- mg.documentation());
+ generateXMLSection(fd,ti,t,mg->members(),"user-defined",mg->header(),
+ mg->documentation());
}
for (const auto &ml : fd->getMemberLists())
@@ -1651,8 +1651,8 @@ static void generateXMLForGroup(const GroupDef *gd,FTextStream &ti)
for (const auto &mg : gd->getMemberGroups())
{
- generateXMLSection(gd,ti,t,mg.members(),"user-defined",mg.header(),
- mg.documentation());
+ generateXMLSection(gd,ti,t,mg->members(),"user-defined",mg->header(),
+ mg->documentation());
}
for (const auto &ml : gd->getMemberLists())