diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2002-02-03 10:42:52 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2002-02-03 10:42:52 (GMT) |
commit | ac16b765b390a835d3f455691a2e3f6a0e94bd78 (patch) | |
tree | c6e72204c112ad8646d737990b93aa290c61c34c /src/classdef.cpp | |
parent | 75fa97fc3cac911c348d177c98057dc68c61771b (diff) | |
download | Doxygen-ac16b765b390a835d3f455691a2e3f6a0e94bd78.zip Doxygen-ac16b765b390a835d3f455691a2e3f6a0e94bd78.tar.gz Doxygen-ac16b765b390a835d3f455691a2e3f6a0e94bd78.tar.bz2 |
Release-1.2.13-20020203
Diffstat (limited to 'src/classdef.cpp')
-rw-r--r-- | src/classdef.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp index 5ea540f..0182c13 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -1580,7 +1580,6 @@ bool ClassDef::isLinkableInProject() const else { return !name().isEmpty() && /* no name */ - //m_isTemplBaseClass==-1 && /* template base class */ !m_artificial && name().find('@')==-1 && /* anonymous compound */ (m_prot!=Private || Config_getBool("EXTRACT_PRIVATE")) && /* private */ @@ -1635,7 +1634,7 @@ bool ClassDef::hasDocumentation() const // returns TRUE iff class definition `bcd' represents an (in)direct base // class of class definition `cd'. -bool ClassDef::isBaseClass(ClassDef *bcd) +bool ClassDef::isBaseClass(ClassDef *bcd, bool followInstances) { bool found=FALSE; //printf("isBaseClass(cd=%s) looking for %s\n",cd->name().data(),bcd->name().data()); @@ -1643,12 +1642,12 @@ bool ClassDef::isBaseClass(ClassDef *bcd) for ( ; bcli.current() && !found ; ++bcli) { ClassDef *ccd=bcli.current()->classDef; - if (ccd->templateMaster()) ccd=ccd->templateMaster(); + if (!followInstances && ccd->templateMaster()) ccd=ccd->templateMaster(); //printf("isBaseClass() baseclass %s\n",ccd->name().data()); if (ccd==bcd) found=TRUE; else - found=ccd->isBaseClass(bcd); + found=ccd->isBaseClass(bcd,followInstances); } return found; } @@ -1719,7 +1718,7 @@ void ClassDef::mergeMembers() { ClassDef *dstCd = dstMd->getClassDef(); //printf(" Is %s a base class of %s?\n",srcCd->name().data(),dstCd->name().data()); - if (srcCd==dstCd || dstCd->isBaseClass(srcCd)) + if (srcCd==dstCd || dstCd->isBaseClass(srcCd,TRUE)) // member is in the same or a base class { found=matchArguments(srcMd->argumentList(), @@ -1731,7 +1730,7 @@ void ClassDef::mergeMembers() hidden = hidden || !found; } else // member is in a non base class => multiple inheritance - // using the same base class. + // using the same base class. { //printf("$$ Existing member %s %s add scope %s\n", // dstMi->ambiguityResolutionScope.data(), @@ -1748,7 +1747,8 @@ void ClassDef::mergeMembers() { // do not add if base class is virtual or // if scope paths are equal - if ((srcMi->virt==Virtual && dstMi->virt==Virtual) || + //printf("same member found srcMi->virt=%d dstMi->virt=%d\n",srcMi->virt,dstMi->virt); + if ((srcMi->virt!=Normal && dstMi->virt!=Normal) || bClass->name()+"::"+srcMi->scopePath == dstMi->scopePath ) { |