[Libreoffice-commits] .: 2 commits - stoc/source
Stephan Bergmann
sbergmann at kemper.freedesktop.org
Tue Oct 4 23:54:12 PDT 2011
stoc/source/inspect/introspection.cxx | 25 +++++++------------------
1 file changed, 7 insertions(+), 18 deletions(-)
New commits:
commit a65b1498035a468377fac09f33696da583aabdfc
Merge: a313cf8... fd4c879...
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Wed Oct 5 08:53:56 2011 +0200
Merge branch 'master' of git://anongit.freedesktop.org/libreoffice/core
commit a313cf86071795bbd051feb9b99258be0a5c8c48
Author: Kevin Hunter <hunteke at earlham.edu>
Date: Tue Oct 4 12:58:10 2011 -0400
Fix logic of isDerivedFrom function
From an email conversation with Stephen Bergmann
"I think the real intent always was to actually look through all the
returned getSuperclasses(), and the error that superclasses past the
first one are effectively ignored has never been noticed."
diff --git a/stoc/source/inspect/introspection.cxx b/stoc/source/inspect/introspection.cxx
index 36f1acc..dd6e32c 100644
--- a/stoc/source/inspect/introspection.cxx
+++ b/stoc/source/inspect/introspection.cxx
@@ -110,29 +110,18 @@ sal_Bool isDerivedFrom( Reference<XIdlClass> xToTestClass, Reference<XIdlClass>
{
Sequence< Reference<XIdlClass> > aClassesSeq = xToTestClass->getSuperclasses();
const Reference<XIdlClass>* pClassesArray = aClassesSeq.getConstArray();
+
sal_Int32 nSuperClassCount = aClassesSeq.getLength();
- sal_Int32 i;
- for( i = 0 ;
- i < nSuperClassCount ;
- /* No "increment" expression needed as the body always
- * returns, and in fact MSVC warns about unreachable code if
- * we include one. On the other hand, what's the point in
- * using a for loop here then if all we ever will look at is
- * pClassesArray[0] ?
- */ )
+ for ( sal_Int32 i = 0; i < nSuperClassCount; ++i )
{
const Reference<XIdlClass>& rxClass = pClassesArray[i];
- if( xDerivedFromClass->equals( rxClass ) )
- {
- // Treffer
+
+ if ( xDerivedFromClass->equals( rxClass ) ||
+ isDerivedFrom( rxClass, xDerivedFromClass )
+ )
return sal_True;
- }
- else
- {
- // Rekursiv weitersuchen
- return isDerivedFrom( rxClass, xDerivedFromClass );
- }
}
+
return sal_False;
}
More information about the Libreoffice-commits
mailing list