summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2020-10-19 11:25:01 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2020-10-19 11:25:01 (GMT)
commit169d71426d1a42ec294c451af5f901620e6d89e5 (patch)
treeda36a3d076d2ddd5f5264031807aa7183314bd3f
parente847d5dc322740b0097f56fc19311c8c74a44a55 (diff)
downloadDoxygen-169d71426d1a42ec294c451af5f901620e6d89e5.zip
Doxygen-169d71426d1a42ec294c451af5f901620e6d89e5.tar.gz
Doxygen-169d71426d1a42ec294c451af5f901620e6d89e5.tar.bz2
Enabling both ALLEXTERNALS and BUILTIN_STL_SUPPORT caused artificial STL classes to appear in the class hierarchy.
-rw-r--r--src/classdef.cpp10
-rw-r--r--src/doxygen.cpp2
2 files changed, 5 insertions, 7 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp
index 20ead94..91730a0 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -3420,16 +3420,14 @@ bool ClassDefImpl::isLinkable() const
/*! the class is visible in a class diagram, or class hierarchy */
bool ClassDefImpl::isVisibleInHierarchy() const
{
- static bool allExternals = Config_getBool(ALLEXTERNALS);
- static bool hideUndocClasses = Config_getBool(HIDE_UNDOC_CLASSES);
- static bool extractStatic = Config_getBool(EXTRACT_STATIC);
+ bool allExternals = Config_getBool(ALLEXTERNALS);
+ bool hideUndocClasses = Config_getBool(HIDE_UNDOC_CLASSES);
+ bool extractStatic = Config_getBool(EXTRACT_STATIC);
return // show all classes or a subclass is visible
- (allExternals || hasNonReferenceSuperClass()) &&
+ ((allExternals && !isArtificial()) || hasNonReferenceSuperClass()) &&
// and not an anonymous compound
!isAnonymous() &&
- // not an artificially introduced class
- /*!isArtificial() &&*/ // 1.8.2: allowed these to appear
// and not privately inherited
protectionLevelVisible(m_impl->prot) &&
// documented or shown anyway or documentation is external
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 7970441..a47b525 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -4469,7 +4469,7 @@ static bool findClassRelation(
if (baseClassTypeDef==0)
{
//printf(" => findTemplateInstanceRelation: %p\n",baseClassTypeDef);
- findTemplateInstanceRelation(root,context,baseClass,templSpec,templateNames,isArtificial);
+ findTemplateInstanceRelation(root,context,baseClass,templSpec,templateNames,baseClass->isArtificial());
}
}
else if (mode==DocumentedOnly || mode==Undocumented)