Blame doxygen-1.7.1-doxygen#625531.patch
|
Than Ngo |
633de6 |
diff -up doxygen-1.7.1/src/classdef.cpp.me doxygen-1.7.1/src/classdef.cpp
|
|
Than Ngo |
633de6 |
--- doxygen-1.7.1/src/classdef.cpp.me 2010-09-08 14:55:33.000000000 +0200
|
|
Than Ngo |
633de6 |
+++ doxygen-1.7.1/src/classdef.cpp 2010-09-08 14:58:02.000000000 +0200
|
|
Than Ngo |
633de6 |
@@ -2162,20 +2162,18 @@ bool ClassDef::isBaseClass(ClassDef *bcd
|
|
Than Ngo |
633de6 |
}
|
|
Than Ngo |
633de6 |
if (baseClasses())
|
|
Than Ngo |
633de6 |
{
|
|
Than Ngo |
633de6 |
- //BaseClassListIterator bcli(*baseClasses());
|
|
Than Ngo |
633de6 |
- //for ( ; bcli.current() && !found ; ++bcli)
|
|
Than Ngo |
633de6 |
- BaseClassDef *bcdi = baseClasses()->first();
|
|
Than Ngo |
633de6 |
- while (bcdi)
|
|
Than Ngo |
633de6 |
+ // Beware: trying to optimise the iterator away using ->first() & ->next()
|
|
Than Ngo |
633de6 |
+ // causes bug 625531
|
|
Than Ngo |
633de6 |
+ BaseClassListIterator bcli(*baseClasses());
|
|
Than Ngo |
633de6 |
+ for ( ; bcli.current() && !found ; ++bcli)
|
|
Than Ngo |
633de6 |
{
|
|
Than Ngo |
633de6 |
- //ClassDef *ccd=bcli.current()->classDef;
|
|
Than Ngo |
633de6 |
- ClassDef *ccd=bcdi->classDef;
|
|
Than Ngo |
633de6 |
+ ClassDef *ccd=bcli.current()->classDef;
|
|
Than Ngo |
633de6 |
if (!followInstances && ccd->templateMaster()) ccd=ccd->templateMaster();
|
|
Than Ngo |
633de6 |
//printf("isBaseClass() baseclass %s\n",ccd->name().data());
|
|
Than Ngo |
633de6 |
if (ccd==bcd)
|
|
Than Ngo |
633de6 |
found=TRUE;
|
|
Than Ngo |
633de6 |
else
|
|
Than Ngo |
633de6 |
found=ccd->isBaseClass(bcd,followInstances,level+1);
|
|
Than Ngo |
633de6 |
- bcdi = baseClasses()->next();
|
|
Than Ngo |
633de6 |
}
|
|
Than Ngo |
633de6 |
}
|
|
Than Ngo |
633de6 |
return found;
|