diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2013-10-12 11:34:10 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2013-10-12 11:34:10 (GMT) |
commit | 9631035b36ade05bed6a71bcbc86d17f8b7c9cab (patch) | |
tree | fc7edc0372a9da87c80e52b331ee907784087f89 /src/classdef.cpp | |
parent | bfb4ae4c6601fd93caa5219a7b73f3e39057cba1 (diff) | |
download | Doxygen-9631035b36ade05bed6a71bcbc86d17f8b7c9cab.zip Doxygen-9631035b36ade05bed6a71bcbc86d17f8b7c9cab.tar.gz Doxygen-9631035b36ade05bed6a71bcbc86d17f8b7c9cab.tar.bz2 |
Bug 709870 - Broken links on members HTML page when using BUILTIN_STL_SUPPORT
Diffstat (limited to 'src/classdef.cpp')
-rw-r--r-- | src/classdef.cpp | 55 |
1 files changed, 31 insertions, 24 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp index 52acec2..eab6b8e 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -2255,7 +2255,8 @@ void ClassDef::writeMemberList(OutputList &ol) ol.writeString("</td>"); memberWritten=TRUE; } - else if (!Config_getBool("HIDE_UNDOC_MEMBERS") && + else if (!cd->isArtificial() && + !Config_getBool("HIDE_UNDOC_MEMBERS") && (protectionLevelVisible(md->protection()) || md->isFriend()) ) // no documentation, // generate link to the class instead. @@ -4143,15 +4144,18 @@ int ClassDef::countInheritedDecMembers(MemberListType lt, { ClassDef *icd=ibcd->classDef; int lt1,lt2; - convertProtectionLevel(lt,ibcd->prot,<1,<2); - //printf("%s: convert %d->(%d,%d) prot=%d\n", - // icd->name().data(),lt,lt1,lt2,ibcd->prot); - if (visitedClasses->find(icd)==0) + if (icd->isLinkable()) { - visitedClasses->insert(icd,icd); // guard for multiple virtual inheritance - if (lt1!=-1) + convertProtectionLevel(lt,ibcd->prot,<1,<2); + //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, for (it.toFirst();(ibcd=it.current());++it) { ClassDef *icd=ibcd->classDef; - int lt1,lt3; - convertProtectionLevel(lt,ibcd->prot,<1,<3); - 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) + if (icd->isLinkable()) { - visitedClasses->insert(icd,icd); // guard for multiple virtual inheritance - if (lt1!=-1) + int lt1,lt3; + convertProtectionLevel(lt,ibcd->prot,<1,<3); + if (lt2==-1 && lt3!=-1) { - icd->writeMemberDeclarations(ol,(MemberListType)lt1, - title,QCString(),FALSE,inheritedFrom,lt2,FALSE /*invert*/,TRUE,visitedClasses); + 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 + 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()); } } } |