From 04a32c98be8b890689699068a6147d836d3b2689 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Fri, 27 Jan 2012 07:57:48 +0000 Subject: use assert to demo equivalence --- idl/source/objects/types.cxx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'idl') diff --git a/idl/source/objects/types.cxx b/idl/source/objects/types.cxx index 080a9e16f1d6..368e06231883 100644 --- a/idl/source/objects/types.cxx +++ b/idl/source/objects/types.cxx @@ -1844,6 +1844,22 @@ void SvMetaTypeEnum::Save( SvPersistStream & rStm ) if( nMask & 0x02 ) write_lenPrefixed_uInt8s_FromOString(rStm, aPrefix); } +namespace +{ + rtl::OString getCommonSubPrefix(const rtl::OString &rA, const rtl::OString &rB) + { + sal_Int32 nMax = std::min(rA.getLength(), rB.getLength()); + sal_Int32 nI = 0; + while (nI < nMax) + { + if (rA[nI] != rB[nI]) + break; + ++nI; + } + return rA.copy(0, nI); + } +} + void SvMetaTypeEnum::ReadContextSvIdl( SvIdlDataBase & rBase, SvTokenStream & rInStm ) { @@ -1858,9 +1874,11 @@ void SvMetaTypeEnum::ReadContextSvIdl( SvIdlDataBase & rBase, aPrefix = aEnumVal->GetName().getString(); else { + rtl::OString sCommonPrefix = getCommonSubPrefix(aPrefix, aEnumVal->GetName().getString()); sal_uInt16 nPos = ByteString(aPrefix).Match( aEnumVal->GetName().getString() ); if( nPos != aPrefix.getLength() && nPos != STRING_MATCH ) aPrefix = aPrefix.copy(0, nPos); + assert(sCommonPrefix == aPrefix); } aEnumValueList.Append( aEnumVal ); } -- cgit