Skip to content

Commit 1b54e32

Browse files
committed
issue #8295: segmentation fault
1 parent 75e9674 commit 1b54e32

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

src/classdef.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4006,9 +4006,9 @@ ClassDef *ClassDefImpl::insertTemplateInstance(const QCString &fileName,
40064006
templateClass->addInnerCompound(innerClass);
40074007
innerClass->setOuterScope(templateClass);
40084008
innerClass->setHidden(isHidden());
4009+
freshInstance=TRUE;
40094010
}
40104011
}
4011-
freshInstance=TRUE;
40124012
}
40134013
return templateClass;
40144014
}

src/doxygen.cpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1190,10 +1190,11 @@ static void resolveClassNestingRelations()
11901190
++iteration;
11911191
struct ClassAlias
11921192
{
1193-
ClassAlias(const QCString &name,std::unique_ptr<ClassDef> cd) :
1194-
aliasFullName(name),aliasCd(std::move(cd)) {}
1193+
ClassAlias(const QCString &name,std::unique_ptr<ClassDef> cd,DefinitionMutable *ctx) :
1194+
aliasFullName(name),aliasCd(std::move(cd)), aliasContext(ctx) {}
11951195
const QCString aliasFullName;
11961196
std::unique_ptr<ClassDef> aliasCd;
1197+
DefinitionMutable *aliasContext;
11971198
};
11981199
std::vector<ClassAlias> aliases;
11991200
for (const auto &icd : *Doxygen::classLinkedMap)
@@ -1230,9 +1231,8 @@ static void resolveClassNestingRelations()
12301231
if (dm)
12311232
{
12321233
std::unique_ptr<ClassDef> aliasCd { createClassDefAlias(d,cd) };
1233-
dm->addInnerCompound(aliasCd.get());
12341234
QCString aliasFullName = d->qualifiedName()+"::"+aliasCd->localName();
1235-
aliases.push_back(ClassAlias(aliasFullName,std::move(aliasCd)));
1235+
aliases.push_back(ClassAlias(aliasFullName,std::move(aliasCd),dm));
12361236
//printf("adding %s to %s as %s\n",qPrint(aliasCd->name()),qPrint(d->name()),qPrint(aliasFullName));
12371237
}
12381238
}
@@ -1255,7 +1255,11 @@ static void resolveClassNestingRelations()
12551255
// add aliases
12561256
for (auto &alias : aliases)
12571257
{
1258-
Doxygen::classLinkedMap->add(alias.aliasFullName,std::move(alias.aliasCd));
1258+
ClassDef *aliasCd = Doxygen::classLinkedMap->add(alias.aliasFullName,std::move(alias.aliasCd));
1259+
if (aliasCd)
1260+
{
1261+
alias.aliasContext->addInnerCompound(aliasCd);
1262+
}
12591263
}
12601264
}
12611265

0 commit comments

Comments
 (0)