Skip to content

Commit c9fc3ac

Browse files
committed
Refactoring: replace raw pointers with std::unique_ptr in template.cpp
1 parent 8bbce64 commit c9fc3ac

File tree

4 files changed

+198
-287
lines changed

4 files changed

+198
-287
lines changed

src/context.cpp

Lines changed: 41 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,9 @@ class GenericNodeListContext : public TemplateListIntf
147147
}
148148
return result;
149149
}
150-
TemplateListIntf::ConstIterator *createIterator() const
150+
TemplateListIntf::ConstIteratorPtr createIterator() const
151151
{
152-
return new GenericConstIterator(m_children);
152+
return std::make_unique<GenericConstIterator>(m_children);
153153
}
154154

155155
void append(const TemplateVariant &ctn)
@@ -1798,7 +1798,7 @@ TemplateVariant IncludeInfoListContext::at(uint index) const
17981798
return p->at(index);
17991799
}
18001800

1801-
TemplateListIntf::ConstIterator *IncludeInfoListContext::createIterator() const
1801+
TemplateListIntf::ConstIteratorPtr IncludeInfoListContext::createIterator() const
18021802
{
18031803
return p->createIterator();
18041804
}
@@ -5948,7 +5948,7 @@ TemplateVariant ClassListContext::at(uint index) const
59485948
return p->at(index);
59495949
}
59505950

5951-
TemplateListIntf::ConstIterator *ClassListContext::createIterator() const
5951+
TemplateListIntf::ConstIteratorPtr ClassListContext::createIterator() const
59525952
{
59535953
return p->createIterator();
59545954
}
@@ -6077,7 +6077,7 @@ static int computeMaxDepth(const TemplateListIntfPtr list)
60776077
int maxDepth=0;
60786078
if (list)
60796079
{
6080-
TemplateListIntf::ConstIterator *it = list->createIterator();
6080+
TemplateListIntf::ConstIteratorPtr it = list->createIterator();
60816081
TemplateVariant v;
60826082
for (it->toFirst();it->current(v);it->toNext())
60836083
{
@@ -6086,7 +6086,6 @@ static int computeMaxDepth(const TemplateListIntfPtr list)
60866086
int d = computeMaxDepth(child.toList())+1;
60876087
if (d>maxDepth) maxDepth=d;
60886088
}
6089-
delete it;
60906089
}
60916090
return maxDepth;
60926091
}
@@ -6100,13 +6099,12 @@ static int computeNumNodesAtLevel(const TemplateStructIntfPtr s,int level,int ma
61006099
TemplateVariant child = s->get("children");
61016100
if (child.toList())
61026101
{
6103-
TemplateListIntf::ConstIterator *it = child.toList()->createIterator();
6102+
TemplateListIntf::ConstIteratorPtr it = child.toList()->createIterator();
61046103
TemplateVariant v;
61056104
for (it->toFirst();it->current(v);it->toNext())
61066105
{
61076106
num+=computeNumNodesAtLevel(v.toStruct(),level+1,maxLevel);
61086107
}
6109-
delete it;
61106108
}
61116109
}
61126110
return num;
@@ -6122,13 +6120,12 @@ static int computePreferredDepth(const TemplateListIntfPtr list,int maxDepth)
61226120
for (int i=1;i<=depth;i++)
61236121
{
61246122
int num=0;
6125-
TemplateListIntf::ConstIterator *it = list->createIterator();
6123+
TemplateListIntf::ConstIteratorPtr it = list->createIterator();
61266124
TemplateVariant v;
61276125
for (it->toFirst();it->current(v);it->toNext())
61286126
{
61296127
num+=computeNumNodesAtLevel(v.toStruct(),0,i);
61306128
}
6131-
delete it;
61326129
if (num<=preferredNumEntries)
61336130
{
61346131
preferredDepth=i;
@@ -7083,7 +7080,7 @@ TemplateVariant NestingContext::at(uint index) const
70837080
return p->at(index);
70847081
}
70857082

7086-
TemplateListIntf::ConstIterator *NestingContext::createIterator() const
7083+
TemplateListIntf::ConstIteratorPtr NestingContext::createIterator() const
70877084
{
70887085
return p->createIterator();
70897086
}
@@ -7340,7 +7337,7 @@ TemplateVariant ConceptListContext::at(uint index) const
73407337
return p->at(index);
73417338
}
73427339

7343-
TemplateListIntf::ConstIterator *ConceptListContext::createIterator() const
7340+
TemplateListIntf::ConstIteratorPtr ConceptListContext::createIterator() const
73447341
{
73457342
return p->createIterator();
73467343
}
@@ -7383,7 +7380,7 @@ TemplateVariant NamespaceListContext::at(uint index) const
73837380
return p->at(index);
73847381
}
73857382

7386-
TemplateListIntf::ConstIterator *NamespaceListContext::createIterator() const
7383+
TemplateListIntf::ConstIteratorPtr NamespaceListContext::createIterator() const
73877384
{
73887385
return p->createIterator();
73897386
}
@@ -7563,7 +7560,7 @@ TemplateVariant FileListContext::at(uint index) const
75637560
return p->at(index);
75647561
}
75657562

7566-
TemplateListIntf::ConstIterator *FileListContext::createIterator() const
7563+
TemplateListIntf::ConstIteratorPtr FileListContext::createIterator() const
75677564
{
75687565
return p->createIterator();
75697566
}
@@ -7602,7 +7599,7 @@ TemplateVariant DirListContext::at(uint index) const
76027599
return p->at(index);
76037600
}
76047601

7605-
TemplateListIntf::ConstIterator *DirListContext::createIterator() const
7602+
TemplateListIntf::ConstIteratorPtr DirListContext::createIterator() const
76067603
{
76077604
return p->createIterator();
76087605
}
@@ -7646,7 +7643,7 @@ TemplateVariant UsedFilesContext::at(uint index) const
76467643
return p->at(index);
76477644
}
76487645

7649-
TemplateListIntf::ConstIterator *UsedFilesContext::createIterator() const
7646+
TemplateListIntf::ConstIteratorPtr UsedFilesContext::createIterator() const
76507647
{
76517648
return p->createIterator();
76527649
}
@@ -7929,7 +7926,7 @@ TemplateVariant PageListContext::at(uint index) const
79297926
return p->at(index);
79307927
}
79317928

7932-
TemplateListIntf::ConstIterator *PageListContext::createIterator() const
7929+
TemplateListIntf::ConstIteratorPtr PageListContext::createIterator() const
79337930
{
79347931
return p->createIterator();
79357932
}
@@ -7971,7 +7968,7 @@ TemplateVariant ExampleListContext::at(uint index) const
79717968
return p->at(index);
79727969
}
79737970

7974-
TemplateListIntf::ConstIterator *ExampleListContext::createIterator() const
7971+
TemplateListIntf::ConstIteratorPtr ExampleListContext::createIterator() const
79757972
{
79767973
return p->createIterator();
79777974
}
@@ -8014,7 +8011,7 @@ TemplateVariant ModuleListContext::at(uint index) const
80148011
return p->at(index);
80158012
}
80168013

8017-
TemplateListIntf::ConstIterator *ModuleListContext::createIterator() const
8014+
TemplateListIntf::ConstIteratorPtr ModuleListContext::createIterator() const
80188015
{
80198016
return p->createIterator();
80208017
}
@@ -9129,7 +9126,7 @@ TemplateVariant InheritanceListContext::at(uint index) const
91299126
return p->at(index);
91309127
}
91319128

9132-
TemplateListIntf::ConstIterator *InheritanceListContext::createIterator() const
9129+
TemplateListIntf::ConstIteratorPtr InheritanceListContext::createIterator() const
91339130
{
91349131
return p->createIterator();
91359132
}
@@ -9190,7 +9187,7 @@ TemplateVariant MemberListContext::at(uint index) const
91909187
return p->at(index);
91919188
}
91929189

9193-
TemplateListIntf::ConstIterator *MemberListContext::createIterator() const
9190+
TemplateListIntf::ConstIteratorPtr MemberListContext::createIterator() const
91949191
{
91959192
return p->createIterator();
91969193
}
@@ -9343,7 +9340,7 @@ TemplateVariant AllMembersListContext::at(uint index) const
93439340
return p->at(index);
93449341
}
93459342

9346-
TemplateListIntf::ConstIterator *AllMembersListContext::createIterator() const
9343+
TemplateListIntf::ConstIteratorPtr AllMembersListContext::createIterator() const
93479344
{
93489345
return p->createIterator();
93499346
}
@@ -9518,7 +9515,7 @@ TemplateVariant MemberGroupListContext::at(uint index) const
95189515
return p->at(index);
95199516
}
95209517

9521-
TemplateListIntf::ConstIterator *MemberGroupListContext::createIterator() const
9518+
TemplateListIntf::ConstIteratorPtr MemberGroupListContext::createIterator() const
95229519
{
95239520
return p->createIterator();
95249521
}
@@ -9650,8 +9647,8 @@ StringVector MemberListInfoContext::fields() const
96509647
class InheritedMemberInfoContext::Private
96519648
{
96529649
public:
9653-
Private(const ClassDef *cd,const MemberList *ml,const QCString &title)
9654-
: m_class(cd), m_memberList(ml), m_title(title)
9650+
Private(const ClassDef *cd,std::unique_ptr<MemberList> &&ml,const QCString &title)
9651+
: m_class(cd), m_memberList(std::move(ml)), m_title(title)
96559652
{
96569653
static bool init=FALSE;
96579654
if (!init)
@@ -9672,10 +9669,6 @@ class InheritedMemberInfoContext::Private
96729669
{
96739670
return s_inst.fields();
96749671
}
9675-
virtual ~Private()
9676-
{
9677-
delete m_memberList;
9678-
}
96799672
TemplateVariant getClass() const
96809673
{
96819674
if (!m_classCtx)
@@ -9692,7 +9685,7 @@ class InheritedMemberInfoContext::Private
96929685
{
96939686
if (!m_memberListCtx)
96949687
{
9695-
m_memberListCtx = MemberListContext::alloc(m_memberList);
9688+
m_memberListCtx = MemberListContext::alloc(m_memberList.get());
96969689
}
96979690
return TemplateVariant(m_memberListCtx);
96989691
}
@@ -9714,7 +9707,7 @@ class InheritedMemberInfoContext::Private
97149707

97159708
private:
97169709
const ClassDef * m_class;
9717-
const MemberList *m_memberList;
9710+
std::unique_ptr<const MemberList> m_memberList;
97189711
QCString m_title;
97199712
mutable TemplateStructIntfPtr m_classCtx;
97209713
mutable TemplateListIntfPtr m_memberListCtx;
@@ -9725,8 +9718,8 @@ class InheritedMemberInfoContext::Private
97259718

97269719
PropertyMapper<InheritedMemberInfoContext::Private> InheritedMemberInfoContext::Private::s_inst;
97279720

9728-
InheritedMemberInfoContext::InheritedMemberInfoContext(const ClassDef *cd,const MemberList *ml,
9729-
const QCString &title) : p(std::make_unique<Private>(cd,ml,title))
9721+
InheritedMemberInfoContext::InheritedMemberInfoContext(const ClassDef *cd,std::unique_ptr<MemberList> &&ml,const QCString &title)
9722+
: p(std::make_unique<Private>(cd,std::move(ml),title))
97309723
{
97319724
}
97329725

@@ -9801,12 +9794,12 @@ class InheritedMemberInfoListContext::Private : public GenericNodeListContext
98019794
{
98029795
const MemberList *ml = cd->getMemberList(lt1);
98039796
const MemberList *ml2 = lt2!=-1 ? cd->getMemberList((MemberListType)lt2) : 0;
9804-
MemberList *combinedList = new MemberList(lt,MemberListContainer::Class);
9805-
addMemberListIncludingGrouped(inheritedFrom,ml,combinedList);
9806-
addMemberListIncludingGrouped(inheritedFrom,ml2,combinedList);
9807-
addMemberGroupsOfClass(inheritedFrom,cd,lt,combinedList);
9808-
if (lt2!=-1) addMemberGroupsOfClass(inheritedFrom,cd,(MemberListType)lt2,combinedList);
9809-
append(InheritedMemberInfoContext::alloc(cd,combinedList,title));
9797+
std::unique_ptr<MemberList> combinedList = std::make_unique<MemberList>(lt,MemberListContainer::Class);
9798+
addMemberListIncludingGrouped(inheritedFrom,ml,combinedList.get());
9799+
addMemberListIncludingGrouped(inheritedFrom,ml2,combinedList.get());
9800+
addMemberGroupsOfClass(inheritedFrom,cd,lt,combinedList.get());
9801+
if (lt2!=-1) addMemberGroupsOfClass(inheritedFrom,cd,(MemberListType)lt2,combinedList.get());
9802+
append(InheritedMemberInfoContext::alloc(cd,std::move(combinedList),title));
98109803
}
98119804
}
98129805
void findInheritedMembers(const ClassDef *inheritedFrom,const ClassDef *cd,MemberListType lt,
@@ -9873,7 +9866,7 @@ TemplateVariant InheritedMemberInfoListContext::at(uint index) const
98739866
return p->at(index);
98749867
}
98759868

9876-
TemplateListIntf::ConstIterator *InheritedMemberInfoListContext::createIterator() const
9869+
TemplateListIntf::ConstIteratorPtr InheritedMemberInfoListContext::createIterator() const
98779870
{
98789871
return p->createIterator();
98799872
}
@@ -10030,7 +10023,7 @@ TemplateVariant ArgumentListContext::at(uint index) const
1003010023
return p->at(index);
1003110024
}
1003210025

10033-
TemplateListIntf::ConstIterator *ArgumentListContext::createIterator() const
10026+
TemplateListIntf::ConstIteratorPtr ArgumentListContext::createIterator() const
1003410027
{
1003510028
return p->createIterator();
1003610029
}
@@ -10249,7 +10242,7 @@ TemplateVariant SymbolListContext::at(uint index) const
1024910242
return p->at(index);
1025010243
}
1025110244

10252-
TemplateListIntf::ConstIterator *SymbolListContext::createIterator() const
10245+
TemplateListIntf::ConstIteratorPtr SymbolListContext::createIterator() const
1025310246
{
1025410247
return p->createIterator();
1025510248
}
@@ -10381,7 +10374,7 @@ TemplateVariant SymbolGroupListContext::at(uint index) const
1038110374
return p->at(index);
1038210375
}
1038310376

10384-
TemplateListIntf::ConstIterator *SymbolGroupListContext::createIterator() const
10377+
TemplateListIntf::ConstIteratorPtr SymbolGroupListContext::createIterator() const
1038510378
{
1038610379
return p->createIterator();
1038710380
}
@@ -10498,7 +10491,7 @@ TemplateVariant SymbolIndicesContext::at(uint index) const
1049810491
return p->at(index);
1049910492
}
1050010493

10501-
TemplateListIntf::ConstIterator *SymbolIndicesContext::createIterator() const
10494+
TemplateListIntf::ConstIteratorPtr SymbolIndicesContext::createIterator() const
1050210495
{
1050310496
return p->createIterator();
1050410497
}
@@ -10611,7 +10604,7 @@ TemplateVariant SearchIndicesContext::at(uint index) const
1061110604
return p->at(index);
1061210605
}
1061310606

10614-
TemplateListIntf::ConstIterator *SearchIndicesContext::createIterator() const
10607+
TemplateListIntf::ConstIteratorPtr SearchIndicesContext::createIterator() const
1061510608
{
1061610609
return p->createIterator();
1061710610
}
@@ -10756,7 +10749,7 @@ void generateOutputViaTemplate()
1075610749
msg("Generating output via template engine...\n");
1075710750
{
1075810751
TemplateEngine e;
10759-
TemplateContext *ctx = e.createContext();
10752+
auto ctx = e.createContext();
1076010753
if (ctx)
1076110754
{
1076210755
TemplateStructIntfPtr doxygen (DoxygenContext::alloc());
@@ -10866,7 +10859,7 @@ void generateOutputViaTemplate()
1086610859
ctx->setSpacelessIntf(&spl);
1086710860
ctx->setOutputDirectory(g_globals.outputDir);
1086810861
TextStream ts;
10869-
tpl->render(ts,ctx);
10862+
tpl->render(ts,ctx.get());
1087010863
e.unload(tpl);
1087110864
}
1087210865
}
@@ -10891,7 +10884,7 @@ void generateOutputViaTemplate()
1089110884
ctx->setSpacelessIntf(&spl);
1089210885
ctx->setOutputDirectory(g_globals.outputDir);
1089310886
TextStream ts;
10894-
tpl->render(ts,ctx);
10887+
tpl->render(ts,ctx.get());
1089510888
e.unload(tpl);
1089610889
}
1089710890
}
@@ -10901,8 +10894,6 @@ void generateOutputViaTemplate()
1090110894
{
1090210895
kv.second->setCookie(0);
1090310896
}
10904-
10905-
e.destroyContext(ctx);
1090610897
}
1090710898
}
1090810899
}

0 commit comments

Comments
 (0)