Commit 9631035b authored by Dimitri van Heesch's avatar Dimitri van Heesch

Bug 709870 - Broken links on members HTML page when using BUILTIN_STL_SUPPORT

parent bfb4ae4c
...@@ -2255,7 +2255,8 @@ void ClassDef::writeMemberList(OutputList &ol) ...@@ -2255,7 +2255,8 @@ void ClassDef::writeMemberList(OutputList &ol)
ol.writeString("</td>"); ol.writeString("</td>");
memberWritten=TRUE; memberWritten=TRUE;
} }
else if (!Config_getBool("HIDE_UNDOC_MEMBERS") && else if (!cd->isArtificial() &&
!Config_getBool("HIDE_UNDOC_MEMBERS") &&
(protectionLevelVisible(md->protection()) || md->isFriend()) (protectionLevelVisible(md->protection()) || md->isFriend())
) // no documentation, ) // no documentation,
// generate link to the class instead. // generate link to the class instead.
...@@ -4143,15 +4144,18 @@ int ClassDef::countInheritedDecMembers(MemberListType lt, ...@@ -4143,15 +4144,18 @@ int ClassDef::countInheritedDecMembers(MemberListType lt,
{ {
ClassDef *icd=ibcd->classDef; ClassDef *icd=ibcd->classDef;
int lt1,lt2; int lt1,lt2;
convertProtectionLevel(lt,ibcd->prot,&lt1,&lt2); if (icd->isLinkable())
//printf("%s: convert %d->(%d,%d) prot=%d\n",
// icd->name().data(),lt,lt1,lt2,ibcd->prot);
if (visitedClasses->find(icd)==0)
{ {
visitedClasses->insert(icd,icd); // guard for multiple virtual inheritance convertProtectionLevel(lt,ibcd->prot,&lt1,&lt2);
if (lt1!=-1) //printf("%s: convert %d->(%d,%d) prot=%d\n",
// icd->name().data(),lt,lt1,lt2,ibcd->prot);
if (visitedClasses->find(icd)==0)
{ {
inhCount+=icd->countMemberDeclarations((MemberListType)lt1,inheritedFrom,lt2,FALSE,TRUE,visitedClasses); visitedClasses->insert(icd,icd); // guard for multiple virtual inheritance
if (lt1!=-1)
{
inhCount+=icd->countMemberDeclarations((MemberListType)lt1,inheritedFrom,lt2,FALSE,TRUE,visitedClasses);
}
} }
} }
} }
...@@ -4279,25 +4283,28 @@ void ClassDef::writeInheritedMemberDeclarations(OutputList &ol, ...@@ -4279,25 +4283,28 @@ void ClassDef::writeInheritedMemberDeclarations(OutputList &ol,
for (it.toFirst();(ibcd=it.current());++it) for (it.toFirst();(ibcd=it.current());++it)
{ {
ClassDef *icd=ibcd->classDef; ClassDef *icd=ibcd->classDef;
int lt1,lt3; if (icd->isLinkable())
convertProtectionLevel(lt,ibcd->prot,&lt1,&lt3);
if (lt2==-1 && lt3!=-1)
{
lt2=lt3;
}
//printf("%s:convert %d->(%d,%d) prot=%d\n",icd->name().data(),lt,lt1,lt2,ibcd->prot);
if (visitedClasses->find(icd)==0)
{ {
visitedClasses->insert(icd,icd); // guard for multiple virtual inheritance int lt1,lt3;
if (lt1!=-1) convertProtectionLevel(lt,ibcd->prot,&lt1,&lt3);
if (lt2==-1 && lt3!=-1)
{ {
icd->writeMemberDeclarations(ol,(MemberListType)lt1, lt2=lt3;
title,QCString(),FALSE,inheritedFrom,lt2,FALSE /*invert*/,TRUE,visitedClasses); }
//printf("%s:convert %d->(%d,%d) prot=%d\n",icd->name().data(),lt,lt1,lt2,ibcd->prot);
if (visitedClasses->find(icd)==0)
{
visitedClasses->insert(icd,icd); // guard for multiple virtual inheritance
if (lt1!=-1)
{
icd->writeMemberDeclarations(ol,(MemberListType)lt1,
title,QCString(),FALSE,inheritedFrom,lt2,FALSE,TRUE,visitedClasses);
}
}
else
{
//printf("%s: class already visited!\n",icd->name().data());
} }
}
else
{
//printf("%s: class already visited!\n",icd->name().data());
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment