@@ -200,10 +200,9 @@ class ClassDefImpl : public DefinitionMixin<ClassDefMutable>
200
200
virtual const ClassDef *templateMaster () const ;
201
201
virtual bool isTemplate () const ;
202
202
virtual IncludeInfo *includeInfo () const ;
203
- virtual UsesClassDict *usedImplementationClasses () const ;
204
- virtual UsesClassDict *usedByImplementationClasses () const ;
205
- virtual UsesClassDict *usedInterfaceClasses () const ;
206
- virtual ConstraintClassDict *templateTypeConstraints () const ;
203
+ virtual const UsesClassList &usedImplementationClasses () const ;
204
+ virtual const UsesClassList &usedByImplementationClasses () const ;
205
+ virtual const ConstraintClassList &templateTypeConstraints () const ;
207
206
virtual bool isTemplateArgument () const ;
208
207
virtual const Definition *findInnerCompound (const char *name) const ;
209
208
virtual ArgumentLists getTemplateParameterLists () const ;
@@ -448,13 +447,11 @@ class ClassDefAliasImpl : public DefinitionAliasMixin<ClassDef>
448
447
{ return getCdAlias ()->isTemplate (); }
449
448
virtual IncludeInfo *includeInfo () const
450
449
{ return getCdAlias ()->includeInfo (); }
451
- virtual UsesClassDict * usedImplementationClasses () const
450
+ virtual const UsesClassList & usedImplementationClasses () const
452
451
{ return getCdAlias ()->usedImplementationClasses (); }
453
- virtual UsesClassDict * usedByImplementationClasses () const
452
+ virtual const UsesClassList & usedByImplementationClasses () const
454
453
{ return getCdAlias ()->usedByImplementationClasses (); }
455
- virtual UsesClassDict *usedInterfaceClasses () const
456
- { return getCdAlias ()->usedInterfaceClasses (); }
457
- virtual ConstraintClassDict *templateTypeConstraints () const
454
+ virtual const ConstraintClassList &templateTypeConstraints () const
458
455
{ return getCdAlias ()->templateTypeConstraints (); }
459
456
virtual bool isTemplateArgument () const
460
457
{ return getCdAlias ()->isTemplateArgument (); }
@@ -640,11 +637,10 @@ class ClassDefImpl::IMPL
640
637
ClassLinkedRefMap innerClasses;
641
638
642
639
/* classes for the collaboration diagram */
643
- UsesClassDict *usesImplClassDict = 0 ;
644
- UsesClassDict *usedByImplClassDict = 0 ;
645
- UsesClassDict *usesIntfClassDict = 0 ;
640
+ UsesClassList usesImplClassList;
641
+ UsesClassList usedByImplClassList;
646
642
647
- ConstraintClassDict *constraintClassDict = 0 ;
643
+ ConstraintClassList constraintClassList ;
648
644
649
645
/* ! Template instances that exists of this class, the key in the
650
646
* dictionary is the template argument list.
@@ -726,10 +722,6 @@ void ClassDefImpl::IMPL::init(const char *defFileName, const char *name,
726
722
prot=Public;
727
723
nspace=0 ;
728
724
fileDef=0 ;
729
- usesImplClassDict=0 ;
730
- usedByImplClassDict=0 ;
731
- usesIntfClassDict=0 ;
732
- constraintClassDict=0 ;
733
725
subGrouping=Config_getBool (SUBGROUPING);
734
726
templateMaster =0 ;
735
727
isAbstract = FALSE ;
@@ -765,10 +757,6 @@ ClassDefImpl::IMPL::IMPL()
765
757
766
758
ClassDefImpl::IMPL::~IMPL ()
767
759
{
768
- delete usesImplClassDict;
769
- delete usedByImplClassDict;
770
- delete usesIntfClassDict;
771
- delete constraintClassDict;
772
760
delete incInfo;
773
761
}
774
762
@@ -3128,18 +3116,16 @@ void ClassDefImpl::addTypeConstraint(const QCString &typeConstraint,const QCStri
3128
3116
}
3129
3117
if (cd)
3130
3118
{
3131
- if (m_impl->constraintClassDict ==0 )
3132
- {
3133
- m_impl->constraintClassDict = new ConstraintClassDict (17 );
3134
- m_impl->constraintClassDict ->setAutoDelete (TRUE );
3135
- }
3136
- ConstraintClassDef *ccd=m_impl->constraintClassDict ->find (typeConstraint);
3137
- if (ccd==0 )
3119
+ auto it = std::find_if (m_impl->constraintClassList .begin (),
3120
+ m_impl->constraintClassList .end (),
3121
+ [&cd](const auto &ccd) { return ccd.classDef ==cd; });
3122
+
3123
+ if (it==m_impl->constraintClassList .end ())
3138
3124
{
3139
- ccd = new ConstraintClassDef (cd);
3140
- m_impl->constraintClassDict -> insert (typeConstraint,ccd) ;
3125
+ m_impl-> constraintClassList . emplace_back (cd);
3126
+ it = m_impl->constraintClassList . end ()- 1 ;
3141
3127
}
3142
- ccd-> addAccessor (type);
3128
+ (*it). addAccessor (type);
3143
3129
// printf("Adding constraint '%s' to class %s on type %s\n",
3144
3130
// typeConstraint.data(),name().data(),type.data());
3145
3131
}
@@ -3726,18 +3712,16 @@ void ClassDefImpl::addUsedClass(ClassDef *cd,const char *accessName,
3726
3712
static bool umlLook = Config_getBool (UML_LOOK);
3727
3713
if (prot==Private && !extractPrivate) return ;
3728
3714
// printf("%s::addUsedClass(%s,%s)\n",name().data(),cd->name().data(),accessName);
3729
- if (m_impl->usesImplClassDict ==0 )
3730
- {
3731
- m_impl->usesImplClassDict = new UsesClassDict (17 );
3732
- m_impl->usesImplClassDict ->setAutoDelete (TRUE );
3733
- }
3734
- UsesClassDef *ucd=m_impl->usesImplClassDict ->find (cd->name ());
3735
- if (ucd==0 )
3715
+
3716
+ auto it = std::find_if (m_impl->usesImplClassList .begin (),
3717
+ m_impl->usesImplClassList .end (),
3718
+ [&cd](const auto &ucd) { return ucd.classDef ==cd; });
3719
+ if (it==m_impl->usesImplClassList .end ())
3736
3720
{
3737
- ucd = new UsesClassDef (cd);
3738
- m_impl-> usesImplClassDict -> insert (cd-> name (),ucd);
3739
- // printf("Adding used class %s to class %s via accessor %s\n",
3740
- // cd->name().data(),name().data(),accessName) ;
3721
+ m_impl-> usesImplClassList . emplace_back (cd);
3722
+ // printf("Adding used class %s to class %s via accessor %s\n",
3723
+ // cd->name().data(),name().data(),accessName);
3724
+ it = m_impl-> usesImplClassList . end ()- 1 ;
3741
3725
}
3742
3726
QCString acc = accessName;
3743
3727
if (umlLook)
@@ -3750,7 +3734,7 @@ void ClassDefImpl::addUsedClass(ClassDef *cd,const char *accessName,
3750
3734
case Package: acc.prepend (" ~" ); break ;
3751
3735
}
3752
3736
}
3753
- ucd-> addAccessor (acc);
3737
+ (*it). addAccessor (acc);
3754
3738
}
3755
3739
3756
3740
void ClassDefImpl::addUsedByClass (ClassDef *cd,const char *accessName,
@@ -3760,18 +3744,16 @@ void ClassDefImpl::addUsedByClass(ClassDef *cd,const char *accessName,
3760
3744
static bool umlLook = Config_getBool (UML_LOOK);
3761
3745
if (prot==Private && !extractPrivate) return ;
3762
3746
// printf("%s::addUsedByClass(%s,%s)\n",name().data(),cd->name().data(),accessName);
3763
- if (m_impl->usedByImplClassDict ==0 )
3747
+ //
3748
+ auto it = std::find_if (m_impl->usedByImplClassList .begin (),
3749
+ m_impl->usedByImplClassList .end (),
3750
+ [&cd](const auto &ucd) { return ucd.classDef ==cd; });
3751
+ if (it==m_impl->usedByImplClassList .end ())
3764
3752
{
3765
- m_impl->usedByImplClassDict = new UsesClassDict (17 );
3766
- m_impl->usedByImplClassDict ->setAutoDelete (TRUE );
3767
- }
3768
- UsesClassDef *ucd=m_impl->usedByImplClassDict ->find (cd->name ());
3769
- if (ucd==0 )
3770
- {
3771
- ucd = new UsesClassDef (cd);
3772
- m_impl->usedByImplClassDict ->insert (cd->name (),ucd);
3753
+ m_impl->usedByImplClassList .emplace_back (cd);
3773
3754
// printf("Adding used by class %s to class %s\n",
3774
3755
// cd->name().data(),name().data());
3756
+ it = m_impl->usedByImplClassList .end ()-1 ;
3775
3757
}
3776
3758
QCString acc = accessName;
3777
3759
if (umlLook)
@@ -3784,7 +3766,7 @@ void ClassDefImpl::addUsedByClass(ClassDef *cd,const char *accessName,
3784
3766
case Package: acc.prepend (" ~" ); break ;
3785
3767
}
3786
3768
}
3787
- ucd-> addAccessor (acc);
3769
+ (*it). addAccessor (acc);
3788
3770
}
3789
3771
3790
3772
@@ -4602,24 +4584,19 @@ IncludeInfo *ClassDefImpl::includeInfo() const
4602
4584
return m_impl->incInfo ;
4603
4585
}
4604
4586
4605
- UsesClassDict *ClassDefImpl::usedImplementationClasses () const
4606
- {
4607
- return m_impl->usesImplClassDict ;
4608
- }
4609
-
4610
- UsesClassDict *ClassDefImpl::usedByImplementationClasses () const
4587
+ const UsesClassList &ClassDefImpl::usedImplementationClasses () const
4611
4588
{
4612
- return m_impl->usedByImplClassDict ;
4589
+ return m_impl->usesImplClassList ;
4613
4590
}
4614
4591
4615
- UsesClassDict * ClassDefImpl::usedInterfaceClasses () const
4592
+ const UsesClassList & ClassDefImpl::usedByImplementationClasses () const
4616
4593
{
4617
- return m_impl->usesIntfClassDict ;
4594
+ return m_impl->usedByImplClassList ;
4618
4595
}
4619
4596
4620
- ConstraintClassDict * ClassDefImpl::templateTypeConstraints () const
4597
+ const ConstraintClassList & ClassDefImpl::templateTypeConstraints () const
4621
4598
{
4622
- return m_impl->constraintClassDict ;
4599
+ return m_impl->constraintClassList ;
4623
4600
}
4624
4601
4625
4602
bool ClassDefImpl::isTemplateArgument () const
0 commit comments