INTEGRATION: CWS xmlperf01 (1.9.32); FILE MERGED

2005/01/14 11:28:53 sb 1.9.32.1: #i40644# Improve performance.
This commit is contained in:
Rüdiger Timm
2005-01-27 11:35:47 +00:00
parent 5bd25e1fa9
commit 127f46a2fd

View File

@@ -2,9 +2,9 @@
*
* $RCSfile: implbase_ex.cxx,v $
*
* $Revision: 1.9 $
* $Revision: 1.10 $
*
* last change: $Author: obo $ $Date: 2004-06-04 03:21:16 $
* last change: $Author: rt $ $Date: 2005-01-27 12:35:47 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -196,6 +196,7 @@ bool recursivelyFindType(
// the object layout, and that they contain slots for the inherited classes
// in a specifc order. In theory, that need not hold for any given
// platform; in practice, it seems to work well on all supported platforms:
next:
for (sal_Int32 i = 0; i < type->nBaseTypes; ++i) {
if (i > 0) {
*offset += sizeof (void *);
@@ -210,6 +211,12 @@ bool recursivelyFindType(
{
return true;
}
// Profiling showed that it is important to speed up the common case
// of only one base:
if (type->nBaseTypes == 1) {
type = base;
goto next;
}
if (recursivelyFindType(demandedType, base, offset)) {
return true;
}