[Libreoffice] Location of SfxPoolItem.Type() method

Mattias Johnsson m.t.johnsson at gmail.com
Sat Nov 20 05:21:08 PST 2010


Hello all,

I've been trying to fix a bug in the search and replace code, and
after a bit of hacking have discovered that in findattr.cxx there's a
function

int CmpAttr( const SfxPoolItem& rItem1, const SfxPoolItem& rItem2 )
{
...
    return rItem1 == rItem2;
}

In the bugged case this returns true, and in the correctly functioning
case it returns false. I'm trying to figure out exactly how rItem1 and
rItem2 differ in the correct case to help me find out what's wrong in
the bugged case.

If I'm understanding things correctly, and I may not be, since the
search and replace code is quite convoluted, in this case these
SfxPoolItems are lists of attributes that one can search and replace
for; in this case I'm searching for a specific font size and replacing
it with another.

The overloaded comparison operator is defined as

int SfxPoolItem::operator==( const SfxPoolItem& rCmp ) const
{
    DBG_CHKTHIS(SfxPoolItem, 0);
    return rCmp.Type() == Type();
}

but for the life of me I can't find out where the Type() method is defined.

Does anyone have any pointers?

Cheers,
Mattias


More information about the LibreOffice mailing list