# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1278422599 -10800 # Node ID 601ab138ba0bb9a42db920459b674ad39527480c # Parent 6be0193986527e78f2ae4a2acc192df8fef578cf Revision: 201027 Kit: 2010127 diff -r 6be019398652 -r 601ab138ba0b charconvfw/charconv_fw/group/charconv.mmp --- a/charconvfw/charconv_fw/group/charconv.mmp Fri Jun 11 15:33:54 2010 +0300 +++ b/charconvfw/charconv_fw/group/charconv.mmp Tue Jul 06 16:23:19 2010 +0300 @@ -34,7 +34,7 @@ OS_LAYER_SYSTEMINCLUDE_SYMBIAN OS_LAYER_ESTLIB_SYSTEMINCLUDE -USERINCLUDE ../src/charconv +USERINCLUDE ../src/charconv ../traces SOURCEPATH ../src/charconv SOURCE charconv.cpp diff -r 6be019398652 -r 601ab138ba0b charconvfw/charconv_fw/src/charconv/charconv.cpp --- a/charconvfw/charconv_fw/src/charconv/charconv.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/charconvfw/charconv_fw/src/charconv/charconv.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -26,6 +26,11 @@ #include #include "chcnvpanic.h" #include "charconv_tls.h" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "charconvTraces.h" +#endif + #if defined(_DEBUG) #define NON_DEBUG_INLINE @@ -129,6 +134,7 @@ break; #if defined(_DEBUG) default: + OstTraceExt3( TRACE_DUMP, _ISBUILTINCHARACTERSET, "::IsBuiltInCharacterSet;aCharacterSetIdentifier=%u;aConfidenceLevel=%d;aSample=%x", aCharacterSetIdentifier, aConfidenceLevel, ( TUint )&( aSample ) ); Panic(EPanicCharacterSetNotPresent); break; #endif @@ -157,8 +163,16 @@ TTlsData* tlsData=STATIC_CAST(TTlsData*, Dll::Tls()); if (tlsData!=NULL) { + if ( tlsData->iCurrentCharacterSetConverter!=NULL ) + { + OstTrace0( TRACE_DUMP, TTLSDATA_CHARACTERSETCONVERTERISBEINGDESTROYED, "EPanicDestructionDuringConversion" ); + } __ASSERT_DEBUG(tlsData->iCurrentCharacterSetConverter==NULL, Panic(EPanicDestructionDuringConversion)); --tlsData->iReferenceCount; + if ( tlsData->iReferenceCount < 0 ) + { + OstTrace0( TRACE_DUMP, DUP1_TTLSDATA_CHARACTERSETCONVERTERISBEINGDESTROYED, "EPanicBadTlsDataReferenceCount" ); + } __ASSERT_DEBUG(tlsData->iReferenceCount>=0, Panic(EPanicBadTlsDataReferenceCount)); if (tlsData->iReferenceCount<=0) { @@ -171,7 +185,15 @@ void TTlsData::SetCurrentCharacterSetConverter(const CCnvCharacterSetConverter* aCharacterSetConverter) { TTlsData* tlsData=STATIC_CAST(TTlsData*, Dll::Tls()); + if ( tlsData==NULL ) + { + OstTrace0( TRACE_FATAL, DUP1_TTLSDATA_SETCURRENTCHARACTERSETCONVERTER, "No Tls Data in TTlsData::SetCurrentCharacterSetConverter" ); + } __ASSERT_ALWAYS(tlsData!=NULL, Panic(EPanicNoTlsData)); + if ( (tlsData->iCurrentCharacterSetConverter==NULL)==(aCharacterSetConverter==NULL) ) + { + OstTrace0( TRACE_FATAL, TTLSDATA_SETCURRENTCHARACTERSETCONVERTER, "Bad Toggle of current characater set converter in TTlsData::SetCurrentCharacterSetConverter" ); + } __ASSERT_ALWAYS((tlsData->iCurrentCharacterSetConverter==NULL)!=(aCharacterSetConverter==NULL), Panic(EPanicBadToggleOfCurrentCharacterSetConverter)); tlsData->iCurrentCharacterSetConverter=aCharacterSetConverter; } @@ -231,7 +253,7 @@ void ReadBufferL(TDes8& aBuffer, TInt aBufferLength); HBufC8* ReadBufferL(TInt aBufferLength); HBufC8* ReadBufferLC(TInt aBufferLength); - inline TBool IsEndOfFile() const {__ASSERT_DEBUG(iNextByteToConsume<=iOnePastEndOfBuffer, Panic(EPanicPastEndOfFile)); return iNextByteToConsume>=iOnePastEndOfBuffer;} + inline TBool IsEndOfFile() const {if ( iNextByteToConsume>iOnePastEndOfBuffer ) {OstTrace0( TRACE_DUMP, _NONSHARABLE_CLASS, "EPanicPastEndOfFile" );}__ASSERT_DEBUG(iNextByteToConsume<=iOnePastEndOfBuffer, Panic(EPanicPastEndOfFile)); return iNextByteToConsume>=iOnePastEndOfBuffer;} private: enum {ENumberOfBytesToConsumeBetweenEachReAllocation=1000}; private: @@ -253,13 +275,20 @@ void CFileReader::ReAllocateTheBuffer() // put this function first so that the compiler does actually inline it for non-DEBUG builds { + if ( (iBuffer==NULL) || (iNextByteToConsume=iFlagPoleForReAllocation), Panic(EPanicNotPastFlagPoleForReAllocation)); const TInt lengthOfBuffer=iOnePastEndOfBuffer-iNextByteToConsume; Mem::Copy(STATIC_CAST(TAny*, iBuffer), iNextByteToConsume, lengthOfBuffer); -#if defined(_DEBUG) const TAny* reAllocatedCell= -#endif - User::ReAlloc(STATIC_CAST(TAny*, iBuffer), lengthOfBuffer); + User::ReAlloc(STATIC_CAST(TAny*, iBuffer), lengthOfBuffer); + if ( reAllocatedCell!=iBuffer ) + { + OstTrace0( TRACE_DUMP, DUP1_CFILEREADER_REALLOCATETHEBUFFER, "EPanicReAllocatedCellMoved" ); + } __ASSERT_DEBUG(reAllocatedCell==iBuffer, Panic(EPanicReAllocatedCellMoved)); iNextByteToConsume=iBuffer; iOnePastEndOfBuffer=iBuffer+lengthOfBuffer; @@ -288,11 +317,16 @@ void CFileReader::SkipL(TInt aNumberOfBytes) { + if ( aNumberOfBytes<0 ) + { + OstTrace0( TRACE_DUMP, CFILEREADER_SKIPL, "EPanicNegativeNumberOfBytes" ); + } __ASSERT_DEBUG(aNumberOfBytes>=0, Panic(EPanicNegativeNumberOfBytes)); CheckPointers(EPanicInconsistentFileReader1); const TUint8* newNextByteToConsume=iNextByteToConsume+aNumberOfBytes; if (newNextByteToConsume>iOnePastEndOfBuffer) { + OstTrace0( TRACE_FATAL, DUP2_CFILEREADER_SKIPL, "KErrCorrupt" ); User::Leave(KErrCorrupt); } iNextByteToConsume=newNextByteToConsume; @@ -327,6 +361,7 @@ const TUint8* newNextByteToConsume=iNextByteToConsume+sizeof(TUint16); if (newNextByteToConsume>iOnePastEndOfBuffer) { + OstTrace0( TRACE_FATAL, CFILEREADER_READUINT16L, "KErrCorrupt" ); User::Leave(KErrCorrupt); } const TInt integer=(*iNextByteToConsume|(*(iNextByteToConsume+1)<<8)); @@ -393,6 +428,7 @@ const TUint8* bytePointer=iNextByteToConsume; if (bytePointer>=iOnePastEndOfBuffer) { + OstTrace0( TRACE_FATAL, CFILEREADER_READPOSITIVEINTEGERCOMPACTED30L, "KErrCorrupt" ); User::Leave(KErrCorrupt); } TInt integer=*bytePointer; @@ -402,6 +438,7 @@ ++bytePointer; if (bytePointer>=iOnePastEndOfBuffer) { + OstTrace0( TRACE_FATAL, DUP1_CFILEREADER_READPOSITIVEINTEGERCOMPACTED30L, "KErrCorrupt" ); User::Leave(KErrCorrupt); } integer<<=8; @@ -411,6 +448,7 @@ integer&=~0x00004000; if (bytePointer+2>=iOnePastEndOfBuffer) { + OstTrace0( TRACE_FATAL, DUP2_CFILEREADER_READPOSITIVEINTEGERCOMPACTED30L, "KErrCorrupt" ); User::Leave(KErrCorrupt); } ++bytePointer; @@ -437,6 +475,7 @@ const TUint8* bytePointer=iNextByteToConsume; if (bytePointer>=iOnePastEndOfBuffer) { + OstTrace0( TRACE_FATAL, CFILEREADER_READSIGNEDINTEGERCOMPACTED29L, "KErrCorrupt" ); User::Leave(KErrCorrupt); } TInt integer=*bytePointer; @@ -448,6 +487,7 @@ ++bytePointer; if (bytePointer>=iOnePastEndOfBuffer) { + OstTrace0( TRACE_FATAL, DUP1_CFILEREADER_READSIGNEDINTEGERCOMPACTED29L, "KErrCorrupt" ); User::Leave(KErrCorrupt); } integer<<=8; @@ -457,6 +497,7 @@ integer&=~0x00002000; if (bytePointer+2>=iOnePastEndOfBuffer) { + OstTrace0( TRACE_FATAL, DUP2_CFILEREADER_READSIGNEDINTEGERCOMPACTED29L, "KErrCorrupt" ); User::Leave(KErrCorrupt); } ++bytePointer; @@ -483,11 +524,16 @@ void CFileReader::ReadBufferL(TDes8& aBuffer, TInt aBufferLength) { + if ( aBufferLength<0 ) + { + OstTrace0( TRACE_DUMP, CFILEREADER_READBUFFERL, "EPanicNegativeBufferLength1" ); + } __ASSERT_DEBUG(aBufferLength>=0, Panic(EPanicNegativeBufferLength1)); CheckPointers(EPanicInconsistentFileReader15); const TUint8* newNextByteToConsume=iNextByteToConsume+aBufferLength; if (newNextByteToConsume>iOnePastEndOfBuffer) { + OstTrace0( TRACE_FATAL, DUP1_CFILEREADER_READBUFFERL, "KErrCorrupt" ); User::Leave(KErrCorrupt); } aBuffer=TPtrC8(iNextByteToConsume, aBufferLength); @@ -501,11 +547,16 @@ HBufC8* CFileReader::ReadBufferL(TInt aBufferLength) { + if ( aBufferLength<0 ) + { + OstTrace0( TRACE_DUMP, DUP2_CFILEREADER_READBUFFERL, "EPanicNegativeBufferLength2" ); + } __ASSERT_DEBUG(aBufferLength>=0, Panic(EPanicNegativeBufferLength2)); CheckPointers(EPanicInconsistentFileReader17); const TUint8* newNextByteToConsume=iNextByteToConsume+aBufferLength; if (newNextByteToConsume>iOnePastEndOfBuffer) { + OstTrace0( TRACE_FATAL, DUP3_CFILEREADER_READBUFFERL, "KErrCorrupt" ); User::Leave(KErrCorrupt); } HBufC8* buffer=TPtrC8(iNextByteToConsume, aBufferLength).AllocL(); @@ -544,12 +595,17 @@ void CFileReader::ConstructForNonRomFileL(RFile& aFile) { TInt lengthOfBuffer; + if ( aFile.Size(lengthOfBuffer) < 0 ) + { + OstTrace0( TRACE_FATAL, DUP1_CFILEREADER_CONSTRUCTFORNONROMFILEL, "aFile.Size(lengthOfBuffer) < 0" ); + } User::LeaveIfError(aFile.Size(lengthOfBuffer)); iBuffer=STATIC_CAST(TUint8*, User::AllocL(lengthOfBuffer+1)); TPtr8 buffer(iBuffer, 0, lengthOfBuffer); User::LeaveIfError(aFile.Read(buffer)); if ((buffer.Length()!=lengthOfBuffer) || (lengthOfBuffer<=0)) { + OstTrace0( TRACE_FATAL, CFILEREADER_CONSTRUCTFORNONROMFILEL, "KErrCorrupt" ); User::Leave(KErrCorrupt); } iNextByteToConsume=iBuffer; @@ -846,6 +902,10 @@ --iCacheSize; } //If iCacheSize is not 0, then there is something wrong with adding/removing cache entry functionality + if ( iCacheSize != 0) + { + OstTrace0( TRACE_DUMP, CCHARSETCNVCACHE_CCHARSETCNVCACHE, "iCacheSize not zero in CCharsetCnvCache::~CCharsetCnvCache" ); + } __ASSERT_DEBUG(iCacheSize == 0, User::Invariant()); } @@ -884,6 +944,10 @@ --iCacheSize; } } + if ( !entry ) + { + OstTrace0( TRACE_FATAL, CCHARSETCNVCACHE_GETCONVERTERL, "entry NULL in CCharsetCnvCache::GetConverterL" ); + } __ASSERT_ALWAYS(entry, User::Invariant()); return entry->iCharsetCnv; } @@ -900,6 +964,10 @@ CCharacterSetConverterPluginInterface* CCharsetCnvCache::Converter(TUid aImplUid) { TCharsetCnvEntry* entry = Find(aImplUid); + if ( entry == NULL || entry->iCharsetCnv == NULL ) + { + OstTrace0( TRACE_FATAL, CCHARSETCNVCACHE_CONVERTER, "entry or entry->iCharsetCnv NULL in CCharsetCnvCache::Converter" ); + } __ASSERT_ALWAYS(entry != NULL && entry->iCharsetCnv != NULL, Panic(EPanicCharacterSetConverterNotLoaded)); iCache.Remove(*entry); iCache.AddFirst(*entry); @@ -918,6 +986,10 @@ */ void CCharsetCnvCache::SetMaxSize(TInt aSize) { + if ( aSize < KMinCacheSize ) + { + OstTrace0( TRACE_FATAL, CCHARSETCNVCACHE_SETMAXSIZE, "aSize < KMinCacheSize in CCharsetCnvCache::SetMaxSize" ); + } __ASSERT_ALWAYS(aSize >= KMinCacheSize, User::Invariant()); //Remove and destroy the last cache entries, if iCacheSize > aSize. for(;iCacheSize>aSize;--iCacheSize) @@ -982,6 +1054,10 @@ void CCharsetCnvCache::RemoveLast() { TCharsetCnvEntry* lastEntry = iCache.Last(); + if ( !lastEntry ) + { + OstTrace0( TRACE_FATAL, CCHARSETCNVCACHE_REMOVELAST, "lastEntry NULL in CCharsetCnvCache::RemoveLast" ); + } __ASSERT_ALWAYS(lastEntry, User::Invariant()); iCache.Remove(*lastEntry); delete lastEntry->iCharsetCnv; @@ -1311,6 +1387,7 @@ aFileServerSession); if (availability!=EAvailable) { + OstTrace0( TRACE_FATAL, CCNVCHARACTERSETCONVERTER_PREPARETOCONVERTTOORFROML, "Conversion Not found in CCnvCharacterSetConverter::PrepareToConvertToOrFromL" ); User::Leave(KErrNotFound); } } @@ -1327,7 +1404,7 @@ This overload of the function is simpler to use than the other and does not panic if the character set with the specified UID is not available at run -timeÂ, it simply returns ENotAvailable. It should be used when the conversion +timeÂ, it simply returns ENotAvailable. It should be used when the conversion character set is specified within the text object being converted, e.g. an email message, or an HTML document. If the character set is not specified, the user must be presented with a list of all available sets, so it makes @@ -1383,6 +1460,10 @@ CCnvCharacterSetConverter::SetDefaultEndiannessOfForeignCharacters( TEndianness aDefaultEndiannessOfForeignCharacters) { + if ( (aDefaultEndiannessOfForeignCharacters!=ELittleEndian) && (aDefaultEndiannessOfForeignCharacters!=EBigEndian) ) + { + OstTrace0( TRACE_FATAL, CCNVCHARACTERSETCONVERTER_SETDEFAULTENDIANNESSOFFOREIGNCHARACTERS, "Bad Default Endianness Of Foreign Characters in CCnvCharacterSetConverter::SetDefaultEndiannessOfForeignCharacters" ); + } __ASSERT_ALWAYS((aDefaultEndiannessOfForeignCharacters==ELittleEndian) || (aDefaultEndiannessOfForeignCharacters==EBigEndian), Panic(EPanicBadDefaultEndiannessOfForeignCharacters)); iDefaultEndiannessOfForeignCharacters=aDefaultEndiannessOfForeignCharacters; } @@ -1410,6 +1491,10 @@ CCnvCharacterSetConverter::SetDowngradeForExoticLineTerminatingCharacters( TDowngradeForExoticLineTerminatingCharacters aDowngradeForExoticLineTerminatingCharacters) { + if ( (aDowngradeForExoticLineTerminatingCharacters!=EDowngradeExoticLineTerminatingCharactersToCarriageReturnLineFeed) && (aDowngradeForExoticLineTerminatingCharacters!=EDowngradeExoticLineTerminatingCharactersToJustLineFeed) ) + { + OstTrace0( TRACE_FATAL, CCNVCHARACTERSETCONVERTER_SETDOWNGRADEFOREXOTICLINETERMINATINGCHARACTERS, "Bad Downgrade For Exotic Line Terminating Characters1 in CCnvCharacterSetConverter::SetDowngradeForExoticLineTerminatingCharacters" ); + } __ASSERT_ALWAYS((aDowngradeForExoticLineTerminatingCharacters==EDowngradeExoticLineTerminatingCharactersToCarriageReturnLineFeed) || (aDowngradeForExoticLineTerminatingCharacters==EDowngradeExoticLineTerminatingCharactersToJustLineFeed), Panic(EPanicBadDowngradeForExoticLineTerminatingCharacters1)); iDowngradeForExoticLineTerminatingCharacters=aDowngradeForExoticLineTerminatingCharacters; } @@ -1574,6 +1659,10 @@ const TDesC16& aUnicode, TArrayOfAscendingIndices& aIndicesOfUnconvertibleCharacters) const { + if ( iCharacterSetIdentifierOfLoadedConversionData==0 ) + { + OstTrace0( TRACE_FATAL, CCNVCHARACTERSETCONVERTER_CONVERTFROMUNICODE, "NullCharacterSetIdentifier1 in CCnvCharacterSetConverter::ConvertFromUnicode" ); + } __ASSERT_ALWAYS(iCharacterSetIdentifierOfLoadedConversionData!=0, Panic(EPanicNullCharacterSetIdentifier1)); if (aUnicode.Length()==0) { @@ -1735,6 +1824,10 @@ TInt& aNumberOfUnconvertibleCharacters, TInt& aIndexOfFirstByteOfFirstUnconvertibleCharacter) const { + if ( iCharacterSetIdentifierOfLoadedConversionData==0 ) + { + OstTrace0( TRACE_FATAL, CCNVCHARACTERSETCONVERTER_CONVERTTOUNICODE, "Null CharacterSetIdentifier2 in CCnvCharacterSetConverter::ConvertToUnicode" ); + } __ASSERT_ALWAYS(iCharacterSetIdentifierOfLoadedConversionData!=0, Panic(EPanicNullCharacterSetIdentifier2)); aNumberOfUnconvertibleCharacters=0; aIndexOfFirstByteOfFirstUnconvertibleCharacter=-1; @@ -1778,6 +1871,10 @@ returnValue=CnvUtfConverter::ConvertToUnicodeFromUtf7(aUnicode, aForeign, ETrue, aState); break; default: + if ( iConversionData==NULL ) + { + OstTrace0( TRACE_FATAL, DUP1_CCNVCHARACTERSETCONVERTER_CONVERTTOUNICODE, "No ConversionData2 in CCnvCharacterSetConverter::ConvertToUnicode" ); + } __ASSERT_ALWAYS(iConversionData!=NULL, Panic(EPanicNoConversionData2)); returnValue=DoConvertToUnicode(*iConversionData, iDefaultEndiannessOfForeignCharacters, aUnicode, aForeign, aNumberOfUnconvertibleCharacters, aIndexOfFirstByteOfFirstUnconvertibleCharacter); break; @@ -1888,6 +1985,7 @@ plugInImplementsAutoDetect, aConfidenceLevel, aSample); + OstTraceExt3( TRACE_DUMP, CCNVCHARACTERSETCONVERTER_AUTODETECTCHARSETL, "detect identifier 0x%x, return isInThisCharSet=%d, aConfidenceLevel=%d", implUid.iUid, isInThisCharSet, aConfidenceLevel); if ((!plugInImplementsAutoDetect) || !isInThisCharSet) { continue; @@ -1918,6 +2016,7 @@ const TInt numberOfCandidateCharacterSets=chid.Count(); if (numberOfCandidateCharacterSets ==0) { + OstTrace0( TRACE_DUMP, DUP2_CCNVCHARACTERSETCONVERTER_AUTODETECTCHARSETL, "We donot find any candidate in first run, so add all plugin as candidate." ); // all the charcterset returned 0, so take all and find then one with least unconvertible // characters for (TInt i=aArrayOfCharacterSetsAvailable.Count()-1; i>=0; --i) @@ -1939,6 +2038,8 @@ TInt state=KStateDefault; TInt unconvertibleChars; charconverter->ConvertToUnicode(*convertedToUnicode,aSample,state,unconvertibleChars); + OstTraceExt2( TRACE_DUMP, DUP1_CCNVCHARACTERSETCONVERTER_AUTODETECTCHARSETL, "Plugin 0x%x has %d unconvertibleChars", chid[i], unconvertibleChars); + if (unconvertibleChars < min) { min = unconvertibleChars; @@ -1952,6 +2053,7 @@ //aConfidenceLevel=another; aCharacterSetIdentifier = chid[result]; + OstTrace1( TRACE_DUMP, DUP3_CCNVCHARACTERSETCONVERTER_AUTODETECTCHARSETL, "Use 0x%x as the auto detected plugin", aCharacterSetIdentifier); if (aConfidenceLevel <= ELowestThreshold) { @@ -2053,6 +2155,10 @@ LOCAL_C TUint OutputCharacterCode(TUint aInputCharacterCode, const SCnvConversionData::SOneDirectionData::SRange& aRange) { + if ( (aInputCharacterCodeaRange.iLastInputCharacterCodeInRange) ) + { + OstTrace0( TRACE_FATAL, _OUTPUTCHARACTERCODE, "Input Character Code Not In Range in ::OutputCharacterCode" ); + } __ASSERT_DEBUG((aInputCharacterCode>=aRange.iFirstInputCharacterCodeInRange) && (aInputCharacterCode<=aRange.iLastInputCharacterCodeInRange), Panic(EPanicInputCharacterCodeNotInRange)); switch (aRange.iAlgorithm) { @@ -2060,9 +2166,17 @@ return aInputCharacterCode; case SCnvConversionData::SOneDirectionData::SRange::EOffset: #if defined(CONST_STATIC_UNIONS_ARE_POSSIBLE) + if (aRange.iData.iOffset==0) + { + OstTrace0( TRACE_DUMP, DUP1__OUTPUTCHARACTERCODE, "EPanicZeroOffset1" ); + } __ASSERT_DEBUG(aRange.iData.iOffset!=0, Panic(EPanicZeroOffset1)); return aInputCharacterCode+aRange.iData.iOffset; #else + if (STATIC_CAST(TInt, aRange.iData.iWord1)==0) + { + OstTrace0( TRACE_DUMP, DUP2__OUTPUTCHARACTERCODE, "EPanicZeroOffset2" ); + } __ASSERT_DEBUG(STATIC_CAST(TInt, aRange.iData.iWord1)!=0, Panic(EPanicZeroOffset2)); return aInputCharacterCode+STATIC_CAST(TInt, aRange.iData.iWord1); #endif @@ -2083,9 +2197,17 @@ TInt rightIndex=STATIC_CAST(TInt, aRange.iData.iWord1); const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry* const entryArray=REINTERPRET_CAST(SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry*, aRange.iData.iWord2); #endif + if(rightIndex<=0) + { + OstTrace0( TRACE_DUMP, DUP3__OUTPUTCHARACTERCODE, "EPanicEmptyKeyedTable1616" ); + } __ASSERT_DEBUG(rightIndex>0, Panic(EPanicEmptyKeyedTable1616)); FOREVER { + if (leftIndex>rightIndex) + { + OstTrace0( TRACE_DUMP, DUP4__OUTPUTCHARACTERCODE, "EPanicBadIndices1" ); + } __ASSERT_DEBUG(leftIndex<=rightIndex, Panic(EPanicBadIndices1)); if (leftIndex==rightIndex) { @@ -2117,9 +2239,17 @@ TInt rightIndex=STATIC_CAST(TInt, aRange.iData.iWord1); const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable16OfIndexedTables16::SKeyedEntry* const keyedEntryArray=REINTERPRET_CAST(SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable16OfIndexedTables16::SKeyedEntry*, aRange.iData.iWord2); #endif + if (rightIndex<=0) + { + OstTrace0( TRACE_DUMP, DUP5__OUTPUTCHARACTERCODE, "EPanicEmptyKeyedTable16OfIndexedTables16" ); + } __ASSERT_DEBUG(rightIndex>0, Panic(EPanicEmptyKeyedTable16OfIndexedTables16)); FOREVER { + if (leftIndex>rightIndex) + { + OstTrace0( TRACE_DUMP, DUP6__OUTPUTCHARACTERCODE, "EPanicBadIndices2" ); + } __ASSERT_DEBUG(leftIndex<=rightIndex, Panic(EPanicBadIndices2)); if (leftIndex==rightIndex) { @@ -2160,9 +2290,17 @@ TInt rightIndex=STATIC_CAST(TInt, aRange.iData.iWord1); const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable3232::SEntry* const entryArray=REINTERPRET_CAST(SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable3232::SEntry*, aRange.iData.iWord2); #endif + if (rightIndex<=0) + { + OstTrace0( TRACE_DUMP, DUP7__OUTPUTCHARACTERCODE, "EPanicEmptyKeyedTable3232" ); + } __ASSERT_DEBUG(rightIndex>0, Panic(EPanicEmptyKeyedTable3232)); FOREVER { + if (leftIndex>rightIndex) + { + OstTrace0( TRACE_DUMP, DUP8__OUTPUTCHARACTERCODE, "EPanicBadIndices1" ); + } __ASSERT_DEBUG(leftIndex<=rightIndex, Panic(EPanicBadIndices1)); if (leftIndex==rightIndex) { @@ -2194,9 +2332,17 @@ TInt rightIndex=STATIC_CAST(TInt, aRange.iData.iWord1); const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable32OfIndexedTables32::SKeyedEntry* const keyedEntryArray=REINTERPRET_CAST(SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable32OfIndexedTables32::SKeyedEntry*, aRange.iData.iWord2); #endif + if (rightIndex<=0) + { + OstTrace0( TRACE_DUMP, DUP9__OUTPUTCHARACTERCODE, "EPanicEmptyKeyedTable32OfIndexedTables32" ); + } __ASSERT_DEBUG(rightIndex>0, Panic(EPanicEmptyKeyedTable32OfIndexedTables32)); FOREVER { + if (leftIndex>rightIndex) + { + OstTrace0( TRACE_DUMP, DUP10__OUTPUTCHARACTERCODE, "EPanicBadIndices2" ); + } __ASSERT_DEBUG(leftIndex<=rightIndex, Panic(EPanicBadIndices2)); if (leftIndex==rightIndex) { @@ -2222,6 +2368,7 @@ #if defined(_DEBUG) default: + OstTrace0( TRACE_DUMP, DUP11__OUTPUTCHARACTERCODE, "EPanicBadAlgorithm1" ); Panic(EPanicBadAlgorithm1); #endif } @@ -2235,8 +2382,20 @@ const SCnvConversionData::SOneDirectionData::SRange* aFirstUnicodeToForeignRange, const SCnvConversionData::SOneDirectionData::SRange* aLastUnicodeToForeignRange) { + if (aFirstUnicodeToForeignRange==NULL) + { + OstTrace0( TRACE_DUMP, _CONVERTSTOFOREIGNCHARACTERSET, "EPanicNullPointer1" ); + } __ASSERT_DEBUG(aFirstUnicodeToForeignRange!=NULL, Panic(EPanicNullPointer1)); + if (aLastUnicodeToForeignRange==NULL) + { + OstTrace0( TRACE_DUMP, DUP1__CONVERTSTOFOREIGNCHARACTERSET, "EPanicNullPointer2" ); + } __ASSERT_DEBUG(aLastUnicodeToForeignRange!=NULL, Panic(EPanicNullPointer2)); + if (aFirstUnicodeToForeignRange>aLastUnicodeToForeignRange) + { + OstTrace0( TRACE_DUMP, DUP2__CONVERTSTOFOREIGNCHARACTERSET, "EPanicCrossedPointers" ); + } __ASSERT_DEBUG(aFirstUnicodeToForeignRange<=aLastUnicodeToForeignRange, Panic(EPanicCrossedPointers)); for (const SCnvConversionData::SOneDirectionData::SRange* currentUnicodeToForeignRange=aFirstUnicodeToForeignRange; ; ++currentUnicodeToForeignRange) { @@ -2249,6 +2408,10 @@ return ETrue; } } + if (currentUnicodeToForeignRange>aLastUnicodeToForeignRange) + { + OstTrace0( TRACE_DUMP, DUP3__CONVERTSTOFOREIGNCHARACTERSET, "EPanicPointerPastUpperLimit21" ); + } __ASSERT_DEBUG(currentUnicodeToForeignRange<=aLastUnicodeToForeignRange, Panic(EPanicPointerPastUpperLimit21)); if (currentUnicodeToForeignRange>=aLastUnicodeToForeignRange) { @@ -2281,7 +2444,7 @@ aDefaultEndiannessOfForeignCharacters is ignored. @param aReplacementForUnconvertibleUnicodeCharacters The single character which is to be used to replace unconvertible characters. -@param aForeign On return, contains the converted text in a non-Unicode +@param aForeign On return, contains the converted text in a non-Unicode character set. @param aUnicode The source Unicode text to be converted. @param aIndicesOfUnconvertibleCharacters On return holds the indices of each @@ -2331,7 +2494,7 @@ is set to EInputConversionFlagStopAtFirstUnconvertibleCharacter, this replacement character is used to replace the first unconvertible character, then the conversion will stop. -@param aForeign On return, contains the converted text in a non-Unicode +@param aForeign On return, contains the converted text in a non-Unicode character set. This may already contain some text. If it does, and if aInputConversionFlags specifies EInputConversionFlagAppend, then the converted text is appended to this descriptor. @@ -2386,6 +2549,10 @@ } const TUint16* pointerToCurrentUnicodeCharacter=aUnicode.Ptr(); const TUint16* const pointerToLastUnicodeCharacter=pointerToCurrentUnicodeCharacter+(aUnicode.Length()-1); + if (aConversionData.iUnicodeToForeignData.iNumberOfRanges<=0) + { + OstTrace0( TRACE_DUMP, CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE, "EPanicBadNumberOfRanges1" ); + } __ASSERT_DEBUG(aConversionData.iUnicodeToForeignData.iNumberOfRanges>0, Panic(EPanicBadNumberOfRanges1)); const SCnvConversionData::SOneDirectionData::SRange* const firstRange=aConversionData.iUnicodeToForeignData.iRangeArray; const SCnvConversionData::SOneDirectionData::SRange* const lastRange=firstRange+(aConversionData.iUnicodeToForeignData.iNumberOfRanges-1); @@ -2397,7 +2564,15 @@ TUint nextInputCharacterCode=KNoConversionAvailable; FOREVER { + if (pointerToPreviousForeignByte>pointerToLastForeignByte) + { + OstTrace0( TRACE_DUMP, DUP1_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE, "EPanicPointerPastUpperLimit6" ); + } __ASSERT_DEBUG(pointerToPreviousForeignByte<=pointerToLastForeignByte, Panic(EPanicPointerPastUpperLimit6)); + if (pointerToCurrentUnicodeCharacter>pointerToLastUnicodeCharacter) + { + OstTrace0( TRACE_DUMP, DUP2_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE, "EPanicPointerPastUpperLimit7" ); + } __ASSERT_DEBUG(pointerToCurrentUnicodeCharacter<=pointerToLastUnicodeCharacter, Panic(EPanicPointerPastUpperLimit7)); TBool stop=EFalse; TUint inputCharacterCode; @@ -2412,6 +2587,10 @@ } if ((inputCharacterCode>=0xd800) && (inputCharacterCode<0xdc00)) { + if (pointerToCurrentUnicodeCharacter>pointerToLastUnicodeCharacter) + { + OstTrace0( TRACE_DUMP, DUP3_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE, "EPanicPointerPastUpperLimit8" ); + } __ASSERT_DEBUG(pointerToCurrentUnicodeCharacter<=pointerToLastUnicodeCharacter, Panic(EPanicPointerPastUpperLimit8)); if (pointerToCurrentUnicodeCharacter>=pointerToLastUnicodeCharacter) { @@ -2428,6 +2607,10 @@ secondHalfOfSurrogatePair&=~0xdc00; inputCharacterCode|=secondHalfOfSurrogatePair; inputCharacterCode+=0x00010000; // this must be added - it cannot be bitwise-"or"-ed + if (!(inputCharacterCode&0xffff0000) || !(inputCharacterCode<0x00110000)) + { + OstTrace0( TRACE_DUMP, DUP4_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE, "EPanicBadNon16BitCharacterCode1" ); + } __ASSERT_DEBUG((inputCharacterCode&0xffff0000) && (inputCharacterCode<0x00110000), Panic(EPanicBadNon16BitCharacterCode1)); } convertInputCharacterCode: @@ -2441,6 +2624,10 @@ if (outputCharacterCode!=KNoConversionAvailable) { TInt temp=currentRange->iSizeOfOutputCharacterCodeInBytesIfForeign; // the meaning of temp changes during it's lifetime (hence the bland variable name) + if ( (temp<=0) || ((temp>STATIC_CAST(TInt, sizeof(TUint)))) || !((temp==sizeof(TUint)) || (outputCharacterCode0) && (temp<=STATIC_CAST(TInt, sizeof(TUint))) && ((temp==sizeof(TUint)) || (outputCharacterCode=pointerToLastForeignByte) + { + OstTrace0( TRACE_DUMP, DUP6_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE, "EPanicPointerPastUpperLimit9" ); + } __ASSERT_DEBUG(pointerToPreviousForeignByte=0, Panic(EPanicBadNumberOfRemainingForeignBytes1)); if (temp<=0) { @@ -2468,9 +2663,17 @@ case EBigEndian: FOREVER { + if (pointerToPreviousForeignByte>=pointerToLastForeignByte) + { + OstTrace0( TRACE_DUMP, DUP8_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE, "EPanicPointerPastUpperLimit10" ); + } __ASSERT_DEBUG(pointerToPreviousForeignByte>temp); + if (temp<0) + { + OstTrace0( TRACE_DUMP, DUP9_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE, "EPanicBadNumberOfRemainingForeignBytes2" ); + } __ASSERT_DEBUG(temp>=0, Panic(EPanicBadNumberOfRemainingForeignBytes2)); if (temp<=0) { @@ -2481,6 +2684,7 @@ break; #if defined(_DEBUG) default: + OstTrace0( TRACE_DUMP, DUP10_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE, "EPanicBadEndianness1" ); Panic(EPanicBadEndianness1); break; #endif @@ -2488,6 +2692,10 @@ break; } } + if (currentRange>lastRange) + { + OstTrace0( TRACE_DUMP, DUP11_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE, "EPanicPointerPastUpperLimit11" ); + } __ASSERT_DEBUG(currentRange<=lastRange, Panic(EPanicPointerPastUpperLimit11)); if (currentRange>=lastRange) { @@ -2517,6 +2725,7 @@ goto convertInputCharacterCode; #if defined(_DEBUG) default: + OstTrace0( TRACE_DUMP, DUP12_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE, "EPanicBadDowngradeForExoticLineTerminatingCharacters2" ); Panic(EPanicBadDowngradeForExoticLineTerminatingCharacters2); break; #endif @@ -2542,6 +2751,10 @@ } FOREVER { + if (pointerToPreviousForeignByte>=pointerToLastForeignByte) + { + OstTrace0( TRACE_DUMP, DUP13_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE, "EPanicPointerPastUpperLimit12" ); + } __ASSERT_DEBUG(pointerToPreviousForeignByte=0x00010000) { + if (pointerToCurrentUnicodeCharacter>=pointerToLastUnicodeCharacter) + { + OstTrace0( TRACE_DUMP, DUP14_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE, "EPanicPointerPastUpperLimit13" ); + } __ASSERT_DEBUG(pointerToCurrentUnicodeCharacterpointerToLastUnicodeCharacter) + { + OstTrace0( TRACE_DUMP, DUP15_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE, "EPanicPointerPastUpperLimit14" ); + } __ASSERT_DEBUG(pointerToCurrentUnicodeCharacter<=pointerToLastUnicodeCharacter, Panic(EPanicPointerPastUpperLimit14)); if (nextInputCharacterCode==KNoConversionAvailable) { @@ -2585,6 +2806,10 @@ } } end: + if (pointerToCurrentUnicodeCharacter=aUnicode.Ptr(), Panic(EPanicPointerPastLowerLimit1)); if ((pointerToCurrentUnicodeCharacter<=aUnicode.Ptr()) && (aOutputConversionFlags&EOutputConversionFlagInputIsTruncated) && (~aInputConversionFlags&EInputConversionFlagAllowTruncatedInputNotEvenPartlyConsumable)) { @@ -2620,7 +2845,7 @@ foreign characters. If an endian-ness for foreign characters is specified in aConversionData, then that is used instead and the value of aDefaultEndiannessOfForeignCharacters is ignored. -@param aUnicode On return, contains the text converted into Unicode. +@param aUnicode On return, contains the text converted into Unicode. @param aForeign The non-Unicode source text to be converted. @param aNumberOfUnconvertibleCharacters On return, contains the number of characters in aForeign which were not converted. Characters which cannot be @@ -2675,7 +2900,7 @@ foreign characters. If an endian-ness for foreign characters is specified in aConversionData, then that is used instead and the value of aDefaultEndiannessOfForeignCharacters is ignored. -@param aUnicode On return, contains the text converted into Unicode. +@param aUnicode On return, contains the text converted into Unicode. @param aForeign The non-Unicode source text to be converted. @param aNumberOfUnconvertibleCharacters On return, contains the number of characters in aForeign which were not converted. Characters which cannot be @@ -2730,25 +2955,49 @@ } const TUint8* pointerToCurrentForeignByte=aForeign.Ptr(); const TUint8* const pointerToLastForeignByte=pointerToCurrentForeignByte+(aForeign.Length()-1); + if (aConversionData.iForeignVariableByteData.iNumberOfRanges<=0) + { + OstTrace0( TRACE_DUMP, CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE, "EPanicBadNumberOfRanges2" ); + } __ASSERT_DEBUG(aConversionData.iForeignVariableByteData.iNumberOfRanges>0, Panic(EPanicBadNumberOfRanges2)); const SCnvConversionData::SVariableByteData::SRange* const foreignVariableByteData_firstRange=aConversionData.iForeignVariableByteData.iRangeArray; const SCnvConversionData::SVariableByteData::SRange* const foreignVariableByteData_lastRange=foreignVariableByteData_firstRange+(aConversionData.iForeignVariableByteData.iNumberOfRanges-1); + if (aConversionData.iForeignToUnicodeData.iNumberOfRanges<=0) + { + OstTrace0( TRACE_DUMP, DUP1_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE, "EPanicBadNumberOfRanges3" ); + } __ASSERT_DEBUG(aConversionData.iForeignToUnicodeData.iNumberOfRanges>0, Panic(EPanicBadNumberOfRanges3)); const SCnvConversionData::SOneDirectionData::SRange* const oneDirectionData_firstRange=aConversionData.iForeignToUnicodeData.iRangeArray; const SCnvConversionData::SOneDirectionData::SRange* const oneDirectionData_lastRange=oneDirectionData_firstRange+(aConversionData.iForeignToUnicodeData.iNumberOfRanges-1); FOREVER { + if (pointerToPreviousUnicodeCharacter>pointerToLastUnicodeCharacter) + { + OstTrace0( TRACE_DUMP, DUP2_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE, "EPanicPointerPastUpperLimit15" ); + } __ASSERT_DEBUG(pointerToPreviousUnicodeCharacter<=pointerToLastUnicodeCharacter, Panic(EPanicPointerPastUpperLimit15)); + if (pointerToCurrentForeignByte>pointerToLastForeignByte) + { + OstTrace0( TRACE_DUMP, DUP3_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE, "EPanicPointerPastUpperLimit16" ); + } __ASSERT_DEBUG(pointerToCurrentForeignByte<=pointerToLastForeignByte, Panic(EPanicPointerPastUpperLimit16)); TBool stop=EFalse; TUint inputCharacterCode=*pointerToCurrentForeignByte; const SCnvConversionData::SVariableByteData::SRange* foreignVariableByteData_currentRange=foreignVariableByteData_firstRange; FOREVER { + if (foreignVariableByteData_currentRange->iNumberOfSubsequentBytes>=sizeof(TUint)) + { + OstTrace0( TRACE_DUMP, DUP4_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE, "EPanicBadNumberOfSubsequentBytes" ); + } __ASSERT_DEBUG(foreignVariableByteData_currentRange->iNumberOfSubsequentBytes=foreignVariableByteData_currentRange->iFirstInitialByteValueInRange) && (inputCharacterCode<=foreignVariableByteData_currentRange->iLastInitialByteValueInRange)) { const TInt numberOfSubsequentBytes=foreignVariableByteData_currentRange->iNumberOfSubsequentBytes; + if (pointerToCurrentForeignByte>pointerToLastForeignByte) + { + OstTrace0( TRACE_DUMP, DUP5_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE, "EPanicPointerPastUpperLimit17" ); + } __ASSERT_DEBUG(pointerToCurrentForeignByte<=pointerToLastForeignByte, Panic(EPanicPointerPastUpperLimit17)); if (pointerToLastForeignByte-pointerToCurrentForeignByte=pointerToLastForeignByte) + { + OstTrace0( TRACE_DUMP, DUP6_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE, "EPanicPointerPastUpperLimit18" ); + } __ASSERT_DEBUG(pointerToCurrentForeignByte0; --i) { + if (pointerToCurrentForeignByte>=pointerToLastForeignByte) + { + OstTrace0( TRACE_DUMP, DUP7_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE, "EPanicPointerPastUpperLimit19" ); + } __ASSERT_DEBUG(pointerToCurrentForeignByteforeignVariableByteData_lastRange) + { + OstTrace0( TRACE_DUMP, DUP9_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE, "EPanicPointerPastUpperLimit20" ); + } __ASSERT_DEBUG(foreignVariableByteData_currentRange<=foreignVariableByteData_lastRange, Panic(EPanicPointerPastUpperLimit20)); if (foreignVariableByteData_currentRange>=foreignVariableByteData_lastRange) { @@ -2809,6 +3071,10 @@ break; } } + if (oneDirectionData_currentRange>oneDirectionData_lastRange) + { + OstTrace0( TRACE_DUMP, DUP10_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE, "EPanicPointerPastUpperLimit21" ); + } __ASSERT_DEBUG(oneDirectionData_currentRange<=oneDirectionData_lastRange, Panic(EPanicPointerPastUpperLimit21)); if (oneDirectionData_currentRange>=oneDirectionData_lastRange) { @@ -2816,6 +3082,10 @@ } ++oneDirectionData_currentRange; } + if (pointerToPreviousUnicodeCharacter>pointerToLastUnicodeCharacter) + { + OstTrace0( TRACE_DUMP, DUP11_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE, "EPanicPointerPastUpperLimit22" ); + } __ASSERT_DEBUG(pointerToPreviousUnicodeCharacter<=pointerToLastUnicodeCharacter, Panic(EPanicPointerPastUpperLimit22)); if (pointerToPreviousUnicodeCharacter==pointerToLastUnicodeCharacter) { @@ -2824,6 +3094,10 @@ if (outputCharacterCode==KNoConversionAvailable) { outputCharacterCode=0xfffd; // Unicode's "REPLACEMENT CHARACTER" + if (aNumberOfUnconvertibleCharacters<0) + { + OstTrace0( TRACE_FATAL, DUP13_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE, "EPanicBadNumberOfUnconvertibleCharacters" ); + } __ASSERT_ALWAYS(aNumberOfUnconvertibleCharacters>=0, Panic(EPanicBadNumberOfUnconvertibleCharacters)); if (aNumberOfUnconvertibleCharacters<=0) { @@ -2842,7 +3116,15 @@ } else { + if (outputCharacterCode>=0x00110000) + { + OstTrace0( TRACE_DUMP, DUP12_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE, "EPanicBadNon16BitCharacterCode2" ); + } __ASSERT_DEBUG(outputCharacterCode<0x00110000, Panic(EPanicBadNon16BitCharacterCode2)); + if (pointerToPreviousUnicodeCharacter>pointerToLastUnicodeCharacter) + { + OstTrace0( TRACE_DUMP, DUP14_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE, "EPanicPointerPastUpperLimit23" ); + } __ASSERT_DEBUG(pointerToPreviousUnicodeCharacter<=pointerToLastUnicodeCharacter, Panic(EPanicPointerPastUpperLimit23)); if (pointerToLastUnicodeCharacter-pointerToPreviousUnicodeCharacter<2) { @@ -2854,6 +3136,10 @@ ++pointerToPreviousUnicodeCharacter; *pointerToPreviousUnicodeCharacter=STATIC_CAST(TUint16, (outputCharacterCode&0x000003ff)|0xdc00); } + if (pointerToLastForeignByte-pointerToCurrentForeignByteiNumberOfSubsequentBytes) + { + OstTrace0( TRACE_DUMP, DUP15_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE, "EPanicPointerPastUpperLimit24" ); + } __ASSERT_DEBUG(pointerToLastForeignByte-pointerToCurrentForeignByte>=foreignVariableByteData_currentRange->iNumberOfSubsequentBytes, Panic(EPanicPointerPastUpperLimit24)); pointerToCurrentForeignByte+=foreignVariableByteData_currentRange->iNumberOfSubsequentBytes; if (pointerToCurrentForeignByte==pointerToLastForeignByte) @@ -2868,6 +3154,10 @@ } } end: + if (pointerToCurrentForeignByte=aForeign.Ptr(), Panic(EPanicPointerPastLowerLimit2)); if ((pointerToCurrentForeignByte<=aForeign.Ptr()) && (aOutputConversionFlags&EOutputConversionFlagInputIsTruncated) && (~aInputConversionFlags&EInputConversionFlagAllowTruncatedInputNotEvenPartlyConsumable)) { @@ -2960,6 +3250,10 @@ { for(TInt j = arrayOfCharacterSetsAvailable->Count() - 1; j >= 0; --j) { + if ((*arrayOfCharacterSetsAvailable)[j].Identifier() == characterSetIdentifier) + { + OstTrace0( TRACE_DUMP, DUP1_CCNVCHARACTERSETCONVERTER_DOCREATEARRAYOFCHARACTERSETSAVAILABLELC, "EPanicCharacterSetAlreadyAdded" ); + } __ASSERT_DEBUG((*arrayOfCharacterSetsAvailable)[j].Identifier() != characterSetIdentifier, Panic(EPanicCharacterSetAlreadyAdded)); } } @@ -2979,6 +3273,10 @@ characterSet.iName = implInfo->DisplayName().AllocLC(); arrayOfCharacterSetsAvailable->AppendL(characterSet); + + OstTraceDefExt1( OST_TRACE_CATEGORY_PRODUCTION | OST_TRACE_CATEGORY_RND, TRACE_INTERNALS, + CCNVCHARACTERSETCONVERTER_DOCREATEARRAYOFCHARACTERSETSAVAILABLELC, + "%S Appended to Character Set Array", *(characterSet.iName) ); CleanupStack::Pop(characterSet.iName); //characterSet.iName } @@ -3093,11 +3391,16 @@ const CArrayFix* aArrayOfCharacterSetsAvailable, RFs& aFileServerSession) { + OstTraceExt2( TRACE_DUMP, DUP3_CCNVCHARACTERSETCONVERTER_DOPREPARETOCONVERTTOORFROML, "Prepare to convert aCharacterSetIdentifier(0x%x) in aArrayOfCharacterSetsAvailable(0x%x)", aCharacterSetIdentifier, (unsigned int)aArrayOfCharacterSetsAvailable); + //AutoDetectCharacterSetL relies on the fact that this function does not use //aFileServerSession if aArrayOfCharacterSetsAvailable is *not* NULL and //if aCharacterSetIdentifier is *not* a data file // aFileServerSession is no longer used load Plugin libraries. ECom framework used instead - + if (aCharacterSetIdentifier==0) + { + OstTrace0( TRACE_FATAL, CCNVCHARACTERSETCONVERTER_DOPREPARETOCONVERTTOORFROML, "EPanicNullCharacterSetIdentifier3" ); + } __ASSERT_ALWAYS(aCharacterSetIdentifier!=0, Panic(EPanicNullCharacterSetIdentifier3)); if (iCharacterSetIdentifierOfLoadedConversionData!=aCharacterSetIdentifier) { @@ -3167,6 +3470,10 @@ const SCharacterSet& characterSet=(*aArrayOfCharacterSetsAvailable)[i]; if (characterSet.Identifier()==aCharacterSetIdentifier) { + if (!characterSet.NameIsFileName()) + { + OstTrace0( TRACE_DUMP, DUP1_CCNVCHARACTERSETCONVERTER_DOPREPARETOCONVERTTOORFROML, "EPanicNameIsNotFileName" ); + } __ASSERT_DEBUG(characterSet.NameIsFileName(), Panic(EPanicNameIsNotFileName)); if (characterSet.FileIsConversionPlugInLibrary()) { @@ -3180,6 +3487,7 @@ { //You are here?! This should never happen! Source code here was related to //old type character set converter data! + OstTrace0( TRACE_FATAL, DUP2_CCNVCHARACTERSETCONVERTER_DOPREPARETOCONVERTTOORFROML, "EPanicCharacterSetNotPresent" ); __ASSERT_ALWAYS(EFalse, Panic(EPanicCharacterSetNotPresent)); } break; @@ -3203,9 +3511,17 @@ TInt aNumberOfRanges, const SCnvConversionData::SOneDirectionData::SRange* aRange) { + if ( !((aRange!=NULL) || (aNumberOfRanges==0)) ) + { + OstTrace0( TRACE_DUMP, _DELETEONEDIRECTIONDATA, "EPanicBadNumberOfRanges4" ); + } __ASSERT_DEBUG((aRange!=NULL) || (aNumberOfRanges==0), Panic(EPanicBadNumberOfRanges4)); if (aRange!=NULL) { + if (aNumberOfRanges<=0) + { + OstTrace0( TRACE_DUMP, DUP1__DELETEONEDIRECTIONDATA, "EPanicBadNumberOfRanges5" ); + } __ASSERT_DEBUG(aNumberOfRanges>0, Panic(EPanicBadNumberOfRanges5)); SCnvConversionData::SOneDirectionData::SRange* currentRange=CONST_CAST(SCnvConversionData::SOneDirectionData::SRange*, aRange); const SCnvConversionData::SOneDirectionData::SRange* const lastRange=currentRange+(aNumberOfRanges-1); @@ -3234,10 +3550,15 @@ // fall through #if defined(_DEBUG) default: + OstTrace0( TRACE_FATAL, DUP2__DELETEONEDIRECTIONDATA, "EPanicBadAlgorithm2" ); Panic(EPanicBadAlgorithm2); #endif break; } + if (currentRange>lastRange) + { + OstTrace0( TRACE_DUMP, DUP3__DELETEONEDIRECTIONDATA, "EPanicPointerPastUpperLimit25" ); + } __ASSERT_DEBUG(currentRange<=lastRange, Panic(EPanicPointerPastUpperLimit25)); if (currentRange==lastRange) { @@ -3280,6 +3601,7 @@ return EBigEndian; } #if defined(_DEBUG) + OstTrace0( TRACE_DUMP, CCNVCHARACTERSETCONVERTER_ENDIANNESSOFFOREIGNCHARACTERS, "EPanicBadEndianness3" ); Panic(EPanicBadEndianness3); #endif return ELittleEndian; // dummy return to prevent compiler error @@ -3299,12 +3621,20 @@ EXPORT_C CCnvCharacterSetConverter::TArrayOfAscendingIndices::TAppendResult CCnvCharacterSetConverter::TArrayOfAscendingIndices::AppendIndex(TInt aIndex) { + if ( aIndex<0 ) + { + OstTrace1( TRACE_DUMP, DUP2_TARRAYOFASCENDINGINDICES_APPENDINDEX, "Bad index in TArrayOfAscendingIndices::AppendIndex;aIndex=%d", aIndex ); + } __ASSERT_DEBUG(aIndex>=0, Panic(EPanicBadIndex)); const TInt lengthOfArrayOfIndices=iArrayOfIndices.Length(); if ((aIndex>STATIC_CAST(TInt, KMaxTUint16)) || (lengthOfArrayOfIndices==iArrayOfIndices.MaxLength())) { return EAppendFailed; } + if ( (lengthOfArrayOfIndices!=0) && (iArrayOfIndices[lengthOfArrayOfIndices-1]>=aIndex)) + { + OstTrace1( TRACE_DUMP, DUP1_TARRAYOFASCENDINGINDICES_APPENDINDEX, "Duplicate Index Or Not Ascending in TArrayOfAscendingIndices::AppendIndex;aIndex=%d", aIndex ); + } __ASSERT_DEBUG((lengthOfArrayOfIndices==0) || (iArrayOfIndices[lengthOfArrayOfIndices-1]= CCharsetCnvCache::KMinCacheSize, User::Invariant()); iCharsetCnvCache->SetMaxSize(aSize); } diff -r 6be019398652 -r 601ab138ba0b charconvfw/charconv_fw/traces/OstTraceDefinitions.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/traces/OstTraceDefinitions.h Tue Jul 06 16:23:19 2010 +0300 @@ -0,0 +1,24 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __OSTTRACEDEFINITIONS_H__ +#define __OSTTRACEDEFINITIONS_H__ +// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler +// REMOVE BEFORE CHECK-IN TO VERSION CONTROL +// #define OST_TRACE_COMPILER_IN_USE +#include +#endif diff -r 6be019398652 -r 601ab138ba0b charconvfw/charconv_fw/traces/fixed_id.definitions --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/traces/fixed_id.definitions Tue Jul 06 16:23:19 2010 +0300 @@ -0,0 +1,123 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt. +[GROUP]TRACE_DUMP=0x89 +[GROUP]TRACE_FATAL=0x81 +[GROUP]TRACE_INTERNALS=0x88 +[TRACE]TRACE_DUMP[0x89]_CCHARSETCNVCACHE_CCHARSETCNVCACHE=0xa +[TRACE]TRACE_DUMP[0x89]_CCNVCHARACTERSETCONVERTER_AUTODETECTCHARSETL=0xb +[TRACE]TRACE_DUMP[0x89]_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x1e +[TRACE]TRACE_DUMP[0x89]_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x2f +[TRACE]TRACE_DUMP[0x89]_CCNVCHARACTERSETCONVERTER_ENDIANNESSOFFOREIGNCHARACTERS=0x45 +[TRACE]TRACE_DUMP[0x89]_CFILEREADER_READBUFFERL=0x8 +[TRACE]TRACE_DUMP[0x89]_CFILEREADER_REALLOCATETHEBUFFER=0x5 +[TRACE]TRACE_DUMP[0x89]_CFILEREADER_SKIPL=0x7 +[TRACE]TRACE_DUMP[0x89]_DUP10_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x28 +[TRACE]TRACE_DUMP[0x89]_DUP10_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x39 +[TRACE]TRACE_DUMP[0x89]_DUP10__OUTPUTCHARACTERCODE=0x18 +[TRACE]TRACE_DUMP[0x89]_DUP11_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x29 +[TRACE]TRACE_DUMP[0x89]_DUP11_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x3a +[TRACE]TRACE_DUMP[0x89]_DUP11__OUTPUTCHARACTERCODE=0x19 +[TRACE]TRACE_DUMP[0x89]_DUP12_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x2a +[TRACE]TRACE_DUMP[0x89]_DUP12_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x3b +[TRACE]TRACE_DUMP[0x89]_DUP13_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x2b +[TRACE]TRACE_DUMP[0x89]_DUP14_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x2c +[TRACE]TRACE_DUMP[0x89]_DUP14_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x3c +[TRACE]TRACE_DUMP[0x89]_DUP15_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x2d +[TRACE]TRACE_DUMP[0x89]_DUP15_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x3d +[TRACE]TRACE_DUMP[0x89]_DUP16_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x2e +[TRACE]TRACE_DUMP[0x89]_DUP16_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x3e +[TRACE]TRACE_DUMP[0x89]_DUP1_CCNVCHARACTERSETCONVERTER_AUTODETECTCHARSETL=0xd +[TRACE]TRACE_DUMP[0x89]_DUP1_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x1f +[TRACE]TRACE_DUMP[0x89]_DUP1_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x30 +[TRACE]TRACE_DUMP[0x89]_DUP1_CCNVCHARACTERSETCONVERTER_DOCREATEARRAYOFCHARACTERSETSAVAILABLELC=0x3f +[TRACE]TRACE_DUMP[0x89]_DUP1_CCNVCHARACTERSETCONVERTER_DOPREPARETOCONVERTTOORFROML=0x41 +[TRACE]TRACE_DUMP[0x89]_DUP1_CFILEREADER_REALLOCATETHEBUFFER=0x6 +[TRACE]TRACE_DUMP[0x89]_DUP1_TARRAYOFASCENDINGINDICES_APPENDINDEX=0x47 +[TRACE]TRACE_DUMP[0x89]_DUP1_TTLSDATA_CHARACTERSETCONVERTERISBEINGDESTROYED=0x3 +[TRACE]TRACE_DUMP[0x89]_DUP1__CONVERTSTOFOREIGNCHARACTERSET=0x1b +[TRACE]TRACE_DUMP[0x89]_DUP1__DELETEONEDIRECTIONDATA=0x43 +[TRACE]TRACE_DUMP[0x89]_DUP1__OUTPUTCHARACTERCODE=0xf +[TRACE]TRACE_DUMP[0x89]_DUP2_CCNVCHARACTERSETCONVERTER_AUTODETECTCHARSETL=0xc +[TRACE]TRACE_DUMP[0x89]_DUP2_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x20 +[TRACE]TRACE_DUMP[0x89]_DUP2_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x31 +[TRACE]TRACE_DUMP[0x89]_DUP2_CFILEREADER_READBUFFERL=0x9 +[TRACE]TRACE_DUMP[0x89]_DUP2_TARRAYOFASCENDINGINDICES_APPENDINDEX=0x46 +[TRACE]TRACE_DUMP[0x89]_DUP2__CONVERTSTOFOREIGNCHARACTERSET=0x1c +[TRACE]TRACE_DUMP[0x89]_DUP2__OUTPUTCHARACTERCODE=0x10 +[TRACE]TRACE_DUMP[0x89]_DUP3_CCNVCHARACTERSETCONVERTER_AUTODETECTCHARSETL=0xe +[TRACE]TRACE_DUMP[0x89]_DUP3_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x21 +[TRACE]TRACE_DUMP[0x89]_DUP3_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x32 +[TRACE]TRACE_DUMP[0x89]_DUP3_CCNVCHARACTERSETCONVERTER_DOPREPARETOCONVERTTOORFROML=0x40 +[TRACE]TRACE_DUMP[0x89]_DUP3__CONVERTSTOFOREIGNCHARACTERSET=0x1d +[TRACE]TRACE_DUMP[0x89]_DUP3__DELETEONEDIRECTIONDATA=0x44 +[TRACE]TRACE_DUMP[0x89]_DUP3__OUTPUTCHARACTERCODE=0x11 +[TRACE]TRACE_DUMP[0x89]_DUP4_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x22 +[TRACE]TRACE_DUMP[0x89]_DUP4_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x33 +[TRACE]TRACE_DUMP[0x89]_DUP4__OUTPUTCHARACTERCODE=0x12 +[TRACE]TRACE_DUMP[0x89]_DUP5_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x23 +[TRACE]TRACE_DUMP[0x89]_DUP5_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x34 +[TRACE]TRACE_DUMP[0x89]_DUP5__OUTPUTCHARACTERCODE=0x13 +[TRACE]TRACE_DUMP[0x89]_DUP6_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x24 +[TRACE]TRACE_DUMP[0x89]_DUP6_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x35 +[TRACE]TRACE_DUMP[0x89]_DUP6__OUTPUTCHARACTERCODE=0x14 +[TRACE]TRACE_DUMP[0x89]_DUP7_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x25 +[TRACE]TRACE_DUMP[0x89]_DUP7_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x36 +[TRACE]TRACE_DUMP[0x89]_DUP7__OUTPUTCHARACTERCODE=0x15 +[TRACE]TRACE_DUMP[0x89]_DUP8_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x26 +[TRACE]TRACE_DUMP[0x89]_DUP8_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x37 +[TRACE]TRACE_DUMP[0x89]_DUP8__OUTPUTCHARACTERCODE=0x16 +[TRACE]TRACE_DUMP[0x89]_DUP9_CCNVCHARACTERSETCONVERTER_DOCONVERTFROMUNICODE=0x27 +[TRACE]TRACE_DUMP[0x89]_DUP9_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x38 +[TRACE]TRACE_DUMP[0x89]_DUP9__OUTPUTCHARACTERCODE=0x17 +[TRACE]TRACE_DUMP[0x89]_TTLSDATA_CHARACTERSETCONVERTERISBEINGDESTROYED=0x2 +[TRACE]TRACE_DUMP[0x89]__CONVERTSTOFOREIGNCHARACTERSET=0x1a +[TRACE]TRACE_DUMP[0x89]__DELETEONEDIRECTIONDATA=0x42 +[TRACE]TRACE_DUMP[0x89]__ISBUILTINCHARACTERSET=0x1 +[TRACE]TRACE_DUMP[0x89]__NONSHARABLE_CLASS=0x4 +[TRACE]TRACE_FATAL[0x81]_CCHARSETCNVCACHE_CONVERTER=0x10 +[TRACE]TRACE_FATAL[0x81]_CCHARSETCNVCACHE_GETCONVERTERL=0xf +[TRACE]TRACE_FATAL[0x81]_CCHARSETCNVCACHE_REMOVELAST=0x12 +[TRACE]TRACE_FATAL[0x81]_CCHARSETCNVCACHE_SETMAXSIZE=0x11 +[TRACE]TRACE_FATAL[0x81]_CCNVCHARACTERSETCONVERTER_CONVERTFROMUNICODE=0x16 +[TRACE]TRACE_FATAL[0x81]_CCNVCHARACTERSETCONVERTER_CONVERTTOUNICODE=0x17 +[TRACE]TRACE_FATAL[0x81]_CCNVCHARACTERSETCONVERTER_DOPREPARETOCONVERTTOORFROML=0x1b +[TRACE]TRACE_FATAL[0x81]_CCNVCHARACTERSETCONVERTER_PREPARETOCONVERTTOORFROML=0x13 +[TRACE]TRACE_FATAL[0x81]_CCNVCHARACTERSETCONVERTER_SETDEFAULTENDIANNESSOFFOREIGNCHARACTERS=0x14 +[TRACE]TRACE_FATAL[0x81]_CCNVCHARACTERSETCONVERTER_SETDOWNGRADEFOREXOTICLINETERMINATINGCHARACTERS=0x15 +[TRACE]TRACE_FATAL[0x81]_CCNVCHARACTERSETCONVERTER_SETMAXCACHESIZE=0x1e +[TRACE]TRACE_FATAL[0x81]_CFILEREADER_CONSTRUCTFORNONROMFILEL=0xe +[TRACE]TRACE_FATAL[0x81]_CFILEREADER_READPOSITIVEINTEGERCOMPACTED30L=0x5 +[TRACE]TRACE_FATAL[0x81]_CFILEREADER_READSIGNEDINTEGERCOMPACTED29L=0x8 +[TRACE]TRACE_FATAL[0x81]_CFILEREADER_READUINT16L=0x4 +[TRACE]TRACE_FATAL[0x81]_DUP13_CCNVCHARACTERSETCONVERTER_DOCONVERTTOUNICODE=0x1a +[TRACE]TRACE_FATAL[0x81]_DUP1_CCNVCHARACTERSETCONVERTER_CONVERTTOUNICODE=0x18 +[TRACE]TRACE_FATAL[0x81]_DUP1_CFILEREADER_CONSTRUCTFORNONROMFILEL=0xd +[TRACE]TRACE_FATAL[0x81]_DUP1_CFILEREADER_READBUFFERL=0xb +[TRACE]TRACE_FATAL[0x81]_DUP1_CFILEREADER_READPOSITIVEINTEGERCOMPACTED30L=0x6 +[TRACE]TRACE_FATAL[0x81]_DUP1_CFILEREADER_READSIGNEDINTEGERCOMPACTED29L=0x9 +[TRACE]TRACE_FATAL[0x81]_DUP1_TTLSDATA_SETCURRENTCHARACTERSETCONVERTER=0x1 +[TRACE]TRACE_FATAL[0x81]_DUP2_CCNVCHARACTERSETCONVERTER_DOPREPARETOCONVERTTOORFROML=0x1c +[TRACE]TRACE_FATAL[0x81]_DUP2_CFILEREADER_READPOSITIVEINTEGERCOMPACTED30L=0x7 +[TRACE]TRACE_FATAL[0x81]_DUP2_CFILEREADER_READSIGNEDINTEGERCOMPACTED29L=0xa +[TRACE]TRACE_FATAL[0x81]_DUP2_CFILEREADER_SKIPL=0x3 +[TRACE]TRACE_FATAL[0x81]_DUP2__DELETEONEDIRECTIONDATA=0x1d +[TRACE]TRACE_FATAL[0x81]_DUP3_CFILEREADER_READBUFFERL=0xc +[TRACE]TRACE_FATAL[0x81]_TTLSDATA_SETCURRENTCHARACTERSETCONVERTER=0x2 +[TRACE]TRACE_FATAL[0x81]__OUTPUTCHARACTERCODE=0x19 +[TRACE]TRACE_INTERNALS[0x88]_CCNVCHARACTERSETCONVERTER_DOCREATEARRAYOFCHARACTERSETSAVAILABLELC=0x1 diff -r 6be019398652 -r 601ab138ba0b charconvfw/charconvplugins/group/Win1250.mmp --- a/charconvfw/charconvplugins/group/Win1250.mmp Fri Jun 11 15:33:54 2010 +0300 +++ b/charconvfw/charconvplugins/group/Win1250.mmp Tue Jul 06 16:23:19 2010 +0300 @@ -38,7 +38,7 @@ SOURCEPATH ../resource -Start resource win1250.rss +Start resource Win1250.rss Targetpath /resource/charconv End diff -r 6be019398652 -r 601ab138ba0b charconvfw/charconvplugins/src/plugins/EUCJP_PACKED_2.CPP --- a/charconvfw/charconvplugins/src/plugins/EUCJP_PACKED_2.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/charconvfw/charconvplugins/src/plugins/EUCJP_PACKED_2.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -283,6 +283,7 @@ const TDesC16& aUnicode, CCnvCharacterSetConverter::TArrayOfAscendingIndices& aIndicesOfUnconvertibleCharacters) { + TInt ret = KErrNone; RArray characterSets; if ( FeatureManager::FeatureSupported(KFeatureIdJapanesePicto) ) { @@ -291,19 +292,19 @@ characterSet.iConversionData=&CnvJisRoman::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=DummyConvertFromIntermediateBufferInPlace; characterSet.iEscapeSequence=&KNullDesC8; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iConversionData=&CnvJisX0208::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0208ToEucJpPackedInPlace; characterSet.iEscapeSequence=&KNullDesC8; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iConversionData=&CnvHalfWidthKatakana8::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromHalfWidthKatakana8ToEucJpPackedInPlace; characterSet.iEscapeSequence=&KNullDesC8; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iConversionData=&CnvJisX0212::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0212ToEucJpPackedInPlace; characterSet.iEscapeSequence=&KNullDesC8; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); SetCharacterSetsForPictograph(characterSets, ECharsetEucJp); } @@ -313,20 +314,21 @@ characterSet.iConversionData=&CnvJisRoman::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=DummyConvertFromIntermediateBufferInPlace; characterSet.iEscapeSequence=&KNullDesC8; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iConversionData=&CnvJisX0208::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0208ToEucJpPackedInPlace; characterSet.iEscapeSequence=&KNullDesC8; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iConversionData=&CnvHalfWidthKatakana8::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromHalfWidthKatakana8ToEucJpPackedInPlace; characterSet.iEscapeSequence=&KNullDesC8; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iConversionData=&CnvJisX0212::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0212ToEucJpPackedInPlace; characterSet.iEscapeSequence=&KNullDesC8; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); } + __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret)); TInt unconvert = CnvUtilities::ConvertFromUnicode(aDefaultEndiannessOfForeignCharacters, aReplacementForUnconvertibleUnicodeCharacters, aForeign, aUnicode, aIndicesOfUnconvertibleCharacters, characterSets.Array()); characterSets.Close(); @@ -575,6 +577,7 @@ TInt& aNumberOfUnconvertibleCharacters, TInt& aIndexOfFirstByteOfFirstUnconvertibleCharacter) { + TInt ret =KErrNone; RArray methods; if ( FeatureManager::FeatureSupported(KFeatureIdJapanesePicto) ) { @@ -585,25 +588,25 @@ method.iConversionData=&CnvJisRoman::ConversionData(); method.iNumberOfBytesPerCharacter=1; method.iNumberOfCoreBytesPerCharacter=1; - methods.Append(method); + ret |= methods.Append(method); method.iNumberOfBytesAbleToConvert=NumberOfBytesAbleToConvertToJisX0208; method.iConvertToIntermediateBufferInPlace=ConvertToJisX0208FromEucJpPackedInPlace; method.iConversionData=&CnvJisX0208::ConversionData(); method.iNumberOfBytesPerCharacter=2; method.iNumberOfCoreBytesPerCharacter=2; - methods.Append(method); + ret |= methods.Append(method); method.iNumberOfBytesAbleToConvert=NumberOfBytesAbleToConvertToHalfWidthKatakana8; method.iConvertToIntermediateBufferInPlace=ConvertToHalfWidthKatakana8FromEucJpPackedInPlace; method.iConversionData=&CnvHalfWidthKatakana8::ConversionData(); method.iNumberOfBytesPerCharacter=2; method.iNumberOfCoreBytesPerCharacter=1; - methods.Append(method); + ret |= methods.Append(method); method.iNumberOfBytesAbleToConvert=NumberOfBytesAbleToConvertToJisX0212; method.iConvertToIntermediateBufferInPlace=ConvertToJisX0212FromEucJpPackedInPlace; method.iConversionData=&CnvJisX0212::ConversionData(); method.iNumberOfBytesPerCharacter=3; method.iNumberOfCoreBytesPerCharacter=2; - methods.Append(method); + ret |= methods.Append(method); } else { @@ -613,26 +616,27 @@ method.iConversionData=&CnvJisRoman::ConversionData(); method.iNumberOfBytesPerCharacter=1; method.iNumberOfCoreBytesPerCharacter=1; - methods.Append(method); + ret |= methods.Append(method); method.iNumberOfBytesAbleToConvert=NumberOfBytesAbleToConvertToJisX0208; method.iConvertToIntermediateBufferInPlace=ConvertToJisX0208FromEucJpPackedInPlace; method.iConversionData=&CnvJisX0208::ConversionData(); method.iNumberOfBytesPerCharacter=2; method.iNumberOfCoreBytesPerCharacter=2; - methods.Append(method); + ret |= methods.Append(method); method.iNumberOfBytesAbleToConvert=NumberOfBytesAbleToConvertToHalfWidthKatakana8; method.iConvertToIntermediateBufferInPlace=ConvertToHalfWidthKatakana8FromEucJpPackedInPlace; method.iConversionData=&CnvHalfWidthKatakana8::ConversionData(); method.iNumberOfBytesPerCharacter=2; method.iNumberOfCoreBytesPerCharacter=1; - methods.Append(method); + ret |= methods.Append(method); method.iNumberOfBytesAbleToConvert=NumberOfBytesAbleToConvertToJisX0212; method.iConvertToIntermediateBufferInPlace=ConvertToJisX0212FromEucJpPackedInPlace; method.iConversionData=&CnvJisX0212::ConversionData(); method.iNumberOfBytesPerCharacter=3; method.iNumberOfCoreBytesPerCharacter=2; - methods.Append(method); + ret |= methods.Append(method); } + __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret)); TInt unconvert = CnvUtilities::ConvertToUnicodeFromHeterogeneousForeign(aDefaultEndiannessOfForeignCharacters, aUnicode, aForeign, aNumberOfUnconvertibleCharacters, aIndexOfFirstByteOfFirstUnconvertibleCharacter, methods.Array()); // The following is specific impelementation for brower. diff -r 6be019398652 -r 601ab138ba0b charconvfw/charconvplugins/src/plugins/ISO2022JP1_2.CPP --- a/charconvfw/charconvplugins/src/plugins/ISO2022JP1_2.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/charconvfw/charconvplugins/src/plugins/ISO2022JP1_2.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -105,6 +105,7 @@ const TDesC16& aUnicode, CCnvCharacterSetConverter::TArrayOfAscendingIndices& aIndicesOfUnconvertibleCharacters) { + TInt ret = KErrNone; RArray characterSets; if ( FeatureManager::FeatureSupported(KFeatureIdJapanesePicto) ) { @@ -112,19 +113,19 @@ characterSet.iConversionData=&CnvJisRoman::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisRomanToJisInPlace; characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisRoman; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iConversionData=&CCnvCharacterSetConverter::AsciiConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromAsciiToJisInPlace; characterSet.iEscapeSequence=&KLit8EscapeSequenceForAscii; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iConversionData=&CnvJisX0208::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0208ToJisInPlace; characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iConversionData=&CnvJisX0212::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0212ToJisInPlace; characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0212_1990; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); SetCharacterSetsForPictograph(characterSets); } @@ -134,20 +135,21 @@ characterSet.iConversionData=&CnvJisRoman::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisRomanToJisInPlace; characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisRoman; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iConversionData=&CCnvCharacterSetConverter::AsciiConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromAsciiToJisInPlace; characterSet.iEscapeSequence=&KLit8EscapeSequenceForAscii; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iConversionData=&CnvJisX0208::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0208ToJisInPlace; characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iConversionData=&CnvJisX0212::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0212ToJisInPlace; characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0212_1990; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); } + __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret)); TUint notUsed; TUint inputConversionFlags=CCnvCharacterSetConverter::EInputConversionFlagMustEndInDefaultCharacterSet; TInt unconvert = CnvUtilities::ConvertFromUnicode(aDefaultEndiannessOfForeignCharacters, aReplacementForUnconvertibleUnicodeCharacters, aForeign, aUnicode, aIndicesOfUnconvertibleCharacters, diff -r 6be019398652 -r 601ab138ba0b charconvfw/charconvplugins/src/plugins/ISO2022JP_2.CPP --- a/charconvfw/charconvplugins/src/plugins/ISO2022JP_2.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/charconvfw/charconvplugins/src/plugins/ISO2022JP_2.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -284,6 +284,7 @@ const TDesC16& aUnicode, CCnvCharacterSetConverter::TArrayOfAscendingIndices& aIndicesOfUnconvertibleCharacters) { + TInt ret = KErrNone; RArray characterSets; if ( FeatureManager::FeatureSupported(KFeatureIdJapanesePicto) ) { @@ -291,19 +292,19 @@ characterSet.iConversionData=&CnvJisRoman::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisRomanToJisInPlace; characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisRoman; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iConversionData=&CCnvCharacterSetConverter::AsciiConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromAsciiToJisInPlace; characterSet.iEscapeSequence=&KLit8EscapeSequenceForAscii; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iConversionData=&CnvJisX0208::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0208ToJisInPlace; characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983; characterSet.iConversionData=&CnvJisBase::HalfWidthKatakana7ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromHalfKatakanaToFullKatakana; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); SetCharacterSetsForPictograph(characterSets); } @@ -313,20 +314,21 @@ characterSet.iConversionData=&CCnvCharacterSetConverter::AsciiConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromAsciiToJisInPlace; characterSet.iEscapeSequence=&KLit8EscapeSequenceForAscii; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iConversionData=&CnvJisRoman::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisRomanToJisInPlace; characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisRoman; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iConversionData=&CnvJisX0208::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0208ToJisInPlace; characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983; characterSet.iConversionData=&CnvJisBase::HalfWidthKatakana7ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromHalfKatakanaToFullKatakana; - characterSets.Append(characterSet); + ret |= characterSets.Append(characterSet); } + __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret)); TUint notUsed; //S60 30 TUint inputConversionFlags=CCnvCharacterSetConverter::EInputConversionFlagMustEndInDefaultCharacterSet; TUint inputConversionFlags=CCnvCharacterSetConverter::EInputConversionFlagMustEndInDefaultCharacterSet | diff -r 6be019398652 -r 601ab138ba0b charconvfw/charconvplugins/src/plugins/iscii.cpp --- a/charconvfw/charconvplugins/src/plugins/iscii.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/charconvfw/charconvplugins/src/plugins/iscii.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -420,7 +420,8 @@ LOCAL_C void FindAndModifyBuffer(TDes8& aModifyBuffer) { - RArray searchBuffer; + TInt ret = KErrNone; + RArray searchBuffer; RArray replaceBuffer; //If the passed buffer contains the replacement buffer, @@ -428,61 +429,62 @@ //buffer rather it should get converted to replacement for //unconvertible character. - searchBuffer.Append(KReplacementForExplicitHalant().Right(1)); - searchBuffer.Append(KReplacementForSoftHalant().Right(1)); - searchBuffer.Append(KReplacementForOm().Right(1)); - searchBuffer.Append(KReplacementForAvagraha().Right(1)); + ret |= searchBuffer.Append(KReplacementForExplicitHalant().Right(1)); + ret |= searchBuffer.Append(KReplacementForSoftHalant().Right(1)); + ret |= searchBuffer.Append(KReplacementForOm().Right(1)); + ret |= searchBuffer.Append(KReplacementForAvagraha().Right(1)); - searchBuffer.Append(KReplacementForVocalicRr().Right(1)); - searchBuffer.Append(KReplacementForVocalicLl().Right(1)); - searchBuffer.Append(KReplacementForVocalicLSign().Right(1)); - searchBuffer.Append(KReplacementForVocalicLlSign().Right(1)); - searchBuffer.Append(KReplacementForVocalicL().Right(1)); - searchBuffer.Append(KReplacementForVocalicRrSign().Right(1)); + ret |= searchBuffer.Append(KReplacementForVocalicRr().Right(1)); + ret |= searchBuffer.Append(KReplacementForVocalicLl().Right(1)); + ret |= searchBuffer.Append(KReplacementForVocalicLSign().Right(1)); + ret |= searchBuffer.Append(KReplacementForVocalicLlSign().Right(1)); + ret |= searchBuffer.Append(KReplacementForVocalicL().Right(1)); + ret |= searchBuffer.Append(KReplacementForVocalicRrSign().Right(1)); //All normal search buffers - searchBuffer.Append(KExplicitHalant().Mid(0)); - searchBuffer.Append(KSoftHalant().Mid(0)); - searchBuffer.Append(KOm().Mid(0)); - searchBuffer.Append(KAvagraha().Mid(0)); + ret |= searchBuffer.Append(KExplicitHalant().Mid(0)); + ret |= searchBuffer.Append(KSoftHalant().Mid(0)); + ret |= searchBuffer.Append(KOm().Mid(0)); + ret |= searchBuffer.Append(KAvagraha().Mid(0)); - searchBuffer.Append(KVocalicRr().Mid(0)); - searchBuffer.Append(KVocalicLl().Mid(0)); - searchBuffer.Append(KVocalicLSign().Mid(0)); - searchBuffer.Append(KVocalicLlSign().Mid(0)); - searchBuffer.Append(KVocalicL().Mid(0)); - searchBuffer.Append(KVocalicRrSign().Mid(0)); + ret |= searchBuffer.Append(KVocalicRr().Mid(0)); + ret |= searchBuffer.Append(KVocalicLl().Mid(0)); + ret |= searchBuffer.Append(KVocalicLSign().Mid(0)); + ret |= searchBuffer.Append(KVocalicLlSign().Mid(0)); + ret |= searchBuffer.Append(KVocalicL().Mid(0)); + ret |= searchBuffer.Append(KVocalicRrSign().Mid(0)); //The replacement buffer for the odd cases to restrict the //replacement buffers not to get converted to the corresponding //unicode buffer - replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); - replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); - replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); - replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); + ret |= replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); + ret |= replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); + ret |= replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); + ret |= replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); - replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); - replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); - replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); - replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); - replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); - replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); + ret |= replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); + ret |= replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); + ret |= replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); + ret |= replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); + ret |= replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); + ret |= replaceBuffer.Append(KIsciiUnconvertibleCharacter().Mid(0)); //All normal replace buffers - replaceBuffer.Append(KReplacementForExplicitHalant().Mid(0)); - replaceBuffer.Append(KReplacementForSoftHalant().Mid(0)); - replaceBuffer.Append(KReplacementForOm().Mid(0)); - replaceBuffer.Append(KReplacementForAvagraha().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForExplicitHalant().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForSoftHalant().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForOm().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForAvagraha().Mid(0)); - replaceBuffer.Append(KReplacementForVocalicRr().Mid(0)); - replaceBuffer.Append(KReplacementForVocalicLl().Mid(0)); - replaceBuffer.Append(KReplacementForVocalicLSign().Mid(0)); - replaceBuffer.Append(KReplacementForVocalicLlSign().Mid(0)); - replaceBuffer.Append(KReplacementForVocalicL().Mid(0)); - replaceBuffer.Append(KReplacementForVocalicRrSign().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForVocalicRr().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForVocalicLl().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForVocalicLSign().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForVocalicLlSign().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForVocalicL().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForVocalicRrSign().Mid(0)); + __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret)); for(TInt counter=0;counter searchBuffer; + TInt ret = KErrNone; + RArray searchBuffer; RArray replaceBuffer; - searchBuffer.Append(KExplicitHalant().Mid(0)); - searchBuffer.Append(KSoftHalant().Mid(0)); - searchBuffer.Append(KOm().Mid(0)); - searchBuffer.Append(KAvagraha().Mid(0)); + ret |= searchBuffer.Append(KExplicitHalant().Mid(0)); + ret |= searchBuffer.Append(KSoftHalant().Mid(0)); + ret |= searchBuffer.Append(KOm().Mid(0)); + ret |= searchBuffer.Append(KAvagraha().Mid(0)); - searchBuffer.Append(KVocalicRr().Mid(0)); - searchBuffer.Append(KVocalicLl().Mid(0)); - searchBuffer.Append(KVocalicLSign().Mid(0)); - searchBuffer.Append(KVocalicLlSign().Mid(0)); - searchBuffer.Append(KVocalicL().Mid(0)); - searchBuffer.Append(KVocalicRrSign().Mid(0)); + ret |= searchBuffer.Append(KVocalicRr().Mid(0)); + ret |= searchBuffer.Append(KVocalicLl().Mid(0)); + ret |= searchBuffer.Append(KVocalicLSign().Mid(0)); + ret |= searchBuffer.Append(KVocalicLlSign().Mid(0)); + ret |= searchBuffer.Append(KVocalicL().Mid(0)); + ret |= searchBuffer.Append(KVocalicRrSign().Mid(0)); - replaceBuffer.Append(KReplacementForExplicitHalant().Mid(0)); - replaceBuffer.Append(KReplacementForSoftHalant().Mid(0)); - replaceBuffer.Append(KReplacementForOm().Mid(0)); - replaceBuffer.Append(KReplacementForAvagraha().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForExplicitHalant().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForSoftHalant().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForOm().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForAvagraha().Mid(0)); - replaceBuffer.Append(KReplacementForVocalicRr().Mid(0)); - replaceBuffer.Append(KReplacementForVocalicLl().Mid(0)); - replaceBuffer.Append(KReplacementForVocalicLSign().Mid(0)); - replaceBuffer.Append(KReplacementForVocalicLlSign().Mid(0)); - replaceBuffer.Append(KReplacementForVocalicL().Mid(0)); - replaceBuffer.Append(KReplacementForVocalicRrSign().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForVocalicRr().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForVocalicLl().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForVocalicLSign().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForVocalicLlSign().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForVocalicL().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForVocalicRrSign().Mid(0)); + + __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret)); DoNormalizeReturnValue(aReturnValue,aBuffer,searchBuffer,replaceBuffer); searchBuffer.Reset(); @@ -683,10 +688,14 @@ return EFalse; if(anIsciiBuffer[anIsciiBuffer.Length()-1] == 0xEF) return ETrue; - searchBuffer.Append(KSoftHalant().Mid(0)); - searchBuffer.Append(KOm().Mid(0)); - searchBuffer.Append(KAvagraha().Mid(0)); - searchBuffer.Append(KExplicitHalant().Mid(0)); + + TInt appendret = KErrNone; + appendret |= searchBuffer.Append(KSoftHalant().Mid(0)); + appendret |= searchBuffer.Append(KOm().Mid(0)); + appendret |= searchBuffer.Append(KAvagraha().Mid(0)); + appendret |= searchBuffer.Append(KExplicitHalant().Mid(0)); + __ASSERT_DEBUG(!appendret, User::Panic(_L("RArray append failure"), appendret)); + TBool ret = EFalse; TBool isNotTruncated =EFalse; @@ -1195,15 +1204,18 @@ RArray searchBuffer; RArray replaceBuffer; - searchBuffer.Append(KExplicitHalant().Mid(0)); - searchBuffer.Append(KSoftHalant().Mid(0)); - searchBuffer.Append(KOm().Mid(0)); - searchBuffer.Append(KAvagraha().Mid(0)); + TInt ret = KErrNone; + ret |= searchBuffer.Append(KExplicitHalant().Mid(0)); + ret |= searchBuffer.Append(KSoftHalant().Mid(0)); + ret |= searchBuffer.Append(KOm().Mid(0)); + ret |= searchBuffer.Append(KAvagraha().Mid(0)); - replaceBuffer.Append(KReplacementForExplicitHalant().Mid(0)); - replaceBuffer.Append(KReplacementForSoftHalant().Mid(0)); - replaceBuffer.Append(KReplacementForOm().Mid(0)); - replaceBuffer.Append(KReplacementForAvagraha().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForExplicitHalant().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForSoftHalant().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForOm().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForAvagraha().Mid(0)); + + __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret)); for(TInt counter=0;counter searchBuffer; RArray replaceBuffer; + TInt ret =KErrNone; + ret |= searchBuffer.Append(KExplicitHalant().Mid(0)); + ret |= searchBuffer.Append(KSoftHalant().Mid(0)); + ret |= searchBuffer.Append(KOm().Mid(0)); + ret |= searchBuffer.Append(KAvagraha().Mid(0)); - searchBuffer.Append(KExplicitHalant().Mid(0)); - searchBuffer.Append(KSoftHalant().Mid(0)); - searchBuffer.Append(KOm().Mid(0)); - searchBuffer.Append(KAvagraha().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForExplicitHalant().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForSoftHalant().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForOm().Mid(0)); + ret |= replaceBuffer.Append(KReplacementForAvagraha().Mid(0)); - replaceBuffer.Append(KReplacementForExplicitHalant().Mid(0)); - replaceBuffer.Append(KReplacementForSoftHalant().Mid(0)); - replaceBuffer.Append(KReplacementForOm().Mid(0)); - replaceBuffer.Append(KReplacementForAvagraha().Mid(0)); + __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret)); + DoNormalizeReturnValue(aReturnValue,aBuffer,searchBuffer,replaceBuffer); searchBuffer.Reset(); replaceBuffer.Reset(); @@ -1389,10 +1404,14 @@ return EFalse; if(anIsciiBuffer[anIsciiBuffer.Length()-1] == 0xEF) return ETrue; - searchBuffer.Append(KSoftHalant().Mid(0)); - searchBuffer.Append(KOm().Mid(0)); - searchBuffer.Append(KAvagraha().Mid(0)); - searchBuffer.Append(KExplicitHalant().Mid(0)); + + TInt appendret = KErrNone; + appendret |= searchBuffer.Append(KSoftHalant().Mid(0)); + appendret |= searchBuffer.Append(KOm().Mid(0)); + appendret |= searchBuffer.Append(KAvagraha().Mid(0)); + appendret |= searchBuffer.Append(KExplicitHalant().Mid(0)); + __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret)); + TBool ret = EFalse; TBool isNotTruncated =EFalse; diff -r 6be019398652 -r 601ab138ba0b charconvfw/charconvplugins/src/shared/CnvPictographShared.cpp --- a/charconvfw/charconvplugins/src/shared/CnvPictographShared.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/charconvfw/charconvplugins/src/shared/CnvPictographShared.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -205,6 +205,7 @@ void CnvPictographShared::SetMethodsForPictograph( RArray& aArrayOfMethods, TOriginalCharset aOriginalCharset) { + TInt ret = KErrNone; CnvUtilities::SMethod method; switch (aOriginalCharset) { @@ -217,7 +218,7 @@ &CnvShiftJisDirectmap::ConversionData(); method.iNumberOfBytesPerCharacter = 2; method.iNumberOfCoreBytesPerCharacter = 2; - aArrayOfMethods.Append(method); + ret |= aArrayOfMethods.Append(method); break; case ECharsetEucJp: method.iNumberOfBytesAbleToConvert = @@ -228,7 +229,7 @@ &CnvShiftJisDirectmap::ConversionData(); method.iNumberOfBytesPerCharacter = 2; method.iNumberOfCoreBytesPerCharacter = 2; - aArrayOfMethods.Append(method); + ret |= aArrayOfMethods.Append(method); method.iNumberOfBytesAbleToConvert = CnvPictographShared::NumberOfBytesAbleToConvertToEucJpDirectMap2; method.iConvertToIntermediateBufferInPlace = @@ -237,12 +238,12 @@ &CnvShiftJisDirectmap::ConversionData(); method.iNumberOfBytesPerCharacter = 3; method.iNumberOfCoreBytesPerCharacter = 2; - aArrayOfMethods.Append(method); + ret |= aArrayOfMethods.Append(method); break; default: break; } - + __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret)); // SAMPLE CODE // If this module needs to support escape sequence pictograph, // Remove the comment from the following code. @@ -269,6 +270,7 @@ RArray& aArrayOfStates, TOriginalCharset aOriginalCharset) { + TInt ret = KErrNone; CnvUtilities::SCharacterSet characterSet; switch (aOriginalCharset) { @@ -279,7 +281,7 @@ characterSet.iConvertFromIntermediateBufferInPlace = DummyConvertFromIntermediateBufferInPlace; characterSet.iEscapeSequence = &KNullDesC8; - aArrayOfStates.Append(characterSet); + ret |= aArrayOfStates.Append(characterSet); break; case ECharsetEucJp: // Append the character set for pictograph1 @@ -287,18 +289,19 @@ characterSet.iConvertFromIntermediateBufferInPlace = ConvertFromPictogaphToEucJpDirectmapInPlace; characterSet.iEscapeSequence = &KNullDesC8; - aArrayOfStates.Append(characterSet); + ret |= aArrayOfStates.Append(characterSet); // Append the character set for pictograph2 characterSet.iConversionData = &CnvShiftJisDirectmap::ConversionData(); characterSet.iConvertFromIntermediateBufferInPlace = ConvertFromPictogaphToEucJpDirectmapInPlace; characterSet.iEscapeSequence = &KNullDesC8; - aArrayOfStates.Append(characterSet); + ret |= aArrayOfStates.Append(characterSet); break; default: break; } + __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret)); } // ----------------------------------------------------------------------------- diff -r 6be019398652 -r 601ab138ba0b charconvfw/charconvplugins/src/shared/JISBASE_SHARED_2.CPP --- a/charconvfw/charconvplugins/src/shared/JISBASE_SHARED_2.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/charconvfw/charconvplugins/src/shared/JISBASE_SHARED_2.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -161,6 +161,7 @@ EXPORT_C TInt CnvJisBase::ConvertToUnicode(CCnvCharacterSetConverter::TEndianness aDefaultEndiannessOfForeignCharacters, TDes16& aUnicode, const TDesC8& aForeign, TInt& aState, TInt& aNumberOfUnconvertibleCharacters, TInt& aIndexOfFirstByteOfFirstUnconvertibleCharacter) { + TInt ret =KErrNone; TBool pictographsSupported = FeatureManager::FeatureSupported(KFeatureIdJapanesePicto); RArray states; if ( pictographsSupported ) @@ -169,60 +170,62 @@ CnvUtilities::SState state; state.iEscapeSequence=&KLit8EscapeSequenceForJisRoman; // Jis-Roman is the default state, so it must come first in the array state.iConversionData=&CnvJisRoman::ConversionData(); - states.Append(state); + ret |= states.Append(state); state.iEscapeSequence=&KLit8EscapeSequenceForJisRomanIncorrect; state.iConversionData=&CnvJisRoman::ConversionData(); - states.Append(state); + ret |= states.Append(state); state.iEscapeSequence=&KLit8EscapeSequenceForAscii; state.iConversionData=&CCnvCharacterSetConverter::AsciiConversionData(); - states.Append(state); + ret |= states.Append(state); SetStatesForPictograph(states); state.iEscapeSequence=&KLit8EscapeSequenceForHalfWidthKatakana; state.iConversionData=&halfWidthKatakana7ConversionData; - states.Append(state); + ret |= states.Append(state); state.iEscapeSequence=&KLit8EscapeSequenceForJisC6226_1978; state.iConversionData=&CnvJisX0208::ConversionData(); - states.Append(state); + ret |= states.Append(state); state.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983; state.iConversionData=&CnvJisX0208::ConversionData(); - states.Append(state); + ret |= states.Append(state); state.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_199x; state.iConversionData=&CnvJisX0208::ConversionData(); - states.Append(state); + ret |= states.Append(state); state.iEscapeSequence=&KLit8EscapeSequenceForJisX0212_1990; state.iConversionData=&CnvJisX0212::ConversionData(); - states.Append(state); + ret |= states.Append(state); } else { CnvUtilities::SState state; state.iEscapeSequence=&KLit8EscapeSequenceForJisRoman; // Jis-Roman is the default state, so it must come first in the array state.iConversionData=&CnvJisRoman::ConversionData(); - states.Append(state); + ret |= states.Append(state); state.iEscapeSequence=&KLit8EscapeSequenceForJisRomanIncorrect; state.iConversionData=&CnvJisRoman::ConversionData(); - states.Append(state); + ret |= states.Append(state); state.iEscapeSequence=&KLit8EscapeSequenceForAscii; state.iConversionData=&CCnvCharacterSetConverter::AsciiConversionData(); - states.Append(state); + ret |= states.Append(state); state.iEscapeSequence=&KLit8EscapeSequenceForHalfWidthKatakana; state.iConversionData=&halfWidthKatakana7ConversionData; - states.Append(state); + ret |= states.Append(state); state.iEscapeSequence=&KLit8EscapeSequenceForJisC6226_1978; state.iConversionData=&CnvJisX0208::ConversionData(); - states.Append(state); + ret |= states.Append(state); state.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983; state.iConversionData=&CnvJisX0208::ConversionData(); - states.Append(state); + ret |= states.Append(state); state.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_199x; state.iConversionData=&CnvJisX0208::ConversionData(); - states.Append(state); + ret |= states.Append(state); state.iEscapeSequence=&KLit8EscapeSequenceForJisX0212_1990; state.iConversionData=&CnvJisX0212::ConversionData(); - states.Append(state); + ret |= states.Append(state); } + __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret)); + const TArray arrayOfStates(states.Array()); aUnicode.SetLength(0); const TUint8* const pointerToFirstByte=aForeign.Ptr(); diff -r 6be019398652 -r 601ab138ba0b fontservices/fontstore/group/FNTSTORE.MMP --- a/fontservices/fontstore/group/FNTSTORE.MMP Fri Jun 11 15:33:54 2010 +0300 +++ b/fontservices/fontstore/group/FNTSTORE.MMP Tue Jul 06 16:23:19 2010 +0300 @@ -36,7 +36,7 @@ // MAY BE NEEDED IN THE FUTURE // OPTION CW -w off -USERINCLUDE ../inc +USERINCLUDE ../inc ../traces OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 6be019398652 -r 601ab138ba0b fontservices/fontstore/group/FntstoreTest.iby --- a/fontservices/fontstore/group/FntstoreTest.iby Fri Jun 11 15:33:54 2010 +0300 +++ b/fontservices/fontstore/group/FntstoreTest.iby Tue Jul 06 16:23:19 2010 +0300 @@ -49,6 +49,7 @@ data=DATAZ_\fntstoretest\fntstoretest_T_LinkedFontUpdateInitial.script \fntstoretest\fntstoretest_T_LinkedFontUpdateInitial.script data=DATAZ_\fntstoretest\fntstoretest_T_LinkedFontUpdateStage1.script \fntstoretest\fntstoretest_T_LinkedFontUpdateStage1.script data=DATAZ_\fntstoretest\fntstoretest_T_LinkedFontUpdateStage2.script \fntstoretest\fntstoretest_T_LinkedFontUpdateStage2.script +data=DATAZ_\fntstoretest\fntstoretest_T_Cache.script \fntstoretest\fntstoretest_T_Cache.script data=DATAZ_\fntstoretest\fntstoretest_T_FontSessionCache.script \fntstoretest\fntstoretest_T_FontSessionCache.script // FntStore test code - TFntStoreServer.exe needs to be copied into \sys\bin\ and set as data so it will be copied to the c: drive and we can change the capabilities of the .exe diff -r 6be019398652 -r 601ab138ba0b fontservices/fontstore/group/TFntStoreServer.mmp --- a/fontservices/fontstore/group/TFntStoreServer.mmp Fri Jun 11 15:33:54 2010 +0300 +++ b/fontservices/fontstore/group/TFntStoreServer.mmp Tue Jul 06 16:23:19 2010 +0300 @@ -32,7 +32,7 @@ userinclude ../../../../graphics/fbs/fontandbitmapserver/inc userinclude ../../../../graphics/graphicstest/graphicstestharness/inc -userinclude ../tfs ../inc ../src +userinclude ../tfs ../inc ../src ../traces APP_LAYER_SYSTEMINCLUDE OS_LAYER_LIBC_SYSTEMINCLUDE diff -r 6be019398652 -r 601ab138ba0b fontservices/fontstore/src/FNTBODY.CPP --- a/fontservices/fontstore/src/FNTBODY.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/fontservices/fontstore/src/FNTBODY.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -21,6 +21,12 @@ #include "FNTBODY.H" #include +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "FNTBODYTraces.h" +#endif + + CFontStoreFile::CFontStoreFile() : iCollectionUid(KNullUid), iUsageCount(1), @@ -272,7 +278,11 @@ const TBitmapFontCharacterMetrics* TCharacterMetricsTable::Metric(TInt aIndex) const { - __ASSERT_DEBUG((aIndex >= 0) && (aIndex <= iNumberOfMetrics), Panic(EFntMetricsIndexOutOfBounds)); + if ((aIndex < 0) || (aIndex > iNumberOfMetrics)) + { + OstTraceExt2( TRACE_FATAL, TCHARACTERMETRICSTABLE_METRIC, "TCharacterMetricsTable::Metric, aIndex=%d, iNumberOfMetrics=%d, Panic(EFntMetricsIndexOutOfBounds)", aIndex, iNumberOfMetrics); + __ASSERT_DEBUG(0, Panic(EFntMetricsIndexOutOfBounds)); + } // Sometimes the start ptr is to a metrics heap item and sometimes it points into a ROM file if (iMetricsOnHeap) { diff -r 6be019398652 -r 601ab138ba0b fontservices/fontstore/src/FNTSTORE.CPP --- a/fontservices/fontstore/src/FNTSTORE.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/fontservices/fontstore/src/FNTSTORE.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -35,6 +35,12 @@ #include #include +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "FNTSTORETraces.h" +#endif + + static const TUint32 KOutlineGlyphIdHashMask = 0x0000ffff; static const TUint32 KOutlineFileUidHashMask = 0x00ff0000; static const TUint32 KOutlineFaceIndexHashMask = 0x0f000000; @@ -1060,6 +1066,7 @@ if (err == KErrNone) { aOpenFont->SetShaper(shaper); + OstTrace0( TRACE_IMPORTANT, CBITMAPFONT_INSTALLOPENFONTSHAPER, "A shaper is installed" ); break; } } @@ -1079,7 +1086,11 @@ //delete any cache entry that is not referenced at all TInt ret=OpenFont()->DecrementCachedRefCount(aSessionHandle,aHeader); //panic in debug mode if trying to delete something that is not there. - __ASSERT_DEBUG(ret==KErrNone || ret==KErrNotFound, User::Invariant()); + if ((ret != KErrNone) && (ret != KErrNotFound)) + { + OstTrace1( TRACE_FATAL, CBITMAPFONT_DELETESHAPE, "OpenFont()->DecrementCachedRefCount() return %d, Invariant", ret); + __ASSERT_DEBUG(0, User::Invariant()); + } } } @@ -1104,7 +1115,11 @@ CFontBitmap* CBitmapFont::FontBitmap() const /** This member is private and not intended for use. */ { - __ASSERT_ALWAYS(!IsOpenFont(),Panic(EFntTypefaceHasNoFontBitmaps)); + if (IsOpenFont()) + { + OstTrace0( TRACE_FATAL, CBITMAPFONT_FONTBITMAP, "Panic(EFntTypefaceHasNoFontBitmaps)" ); + __ASSERT_ALWAYS(0, Panic(EFntTypefaceHasNoFontBitmaps)); + } if(iFontBitmapOffset) return reinterpret_cast(reinterpret_cast(this)+iFontBitmapOffset); else @@ -2326,9 +2341,7 @@ User::LeaveIfError(aFile.Read(aDes, aLength)); if (aDes.Length() != aLength) { -#ifdef _DEBUG - RDebug::Print(_L("EOF reading structure from font file\n")); -#endif + OstTrace0( TRACE_DUMP, _READFROMFILEL, "EOF reading structure from font file, Leave(KErrCorrupt)" ); User::Leave(KErrCorrupt); } } @@ -2343,10 +2356,8 @@ // must be ASCII character between 32 & 126 inclusive (per Apple's TTF specification document) if ( (temp < 32) || (temp > 126) ) { + OstTrace1( TRACE_DUMP, _TTFTABLETAGFROMBUFFERL, "invalid ASCII character (0x%x) in ttf table tag, Leave(KErrCorrupt)", temp); User::Leave(KErrCorrupt); -#ifdef _DEBUG - RDebug::Print(_L("invalid ASCII character (0x%x) in ttf table tag\n"), temp); -#endif } value = (value << 8) | temp; } @@ -2357,10 +2368,7 @@ */ void CFontStore::SanityCheckForTtfL(RFile& aFontFile, TUint aFontFileSize, TBool aStrictChecking) { -#if defined(_DEBUG) - RDebug::Print(_L("TTF File Size is %u (0x%x) bytes\n"), aFontFileSize, aFontFileSize); -#endif - + OstTraceExt2( TRACE_DUMP, CFONTSTORE_SANITYCHECKFORTTFL, "TTF File Size is %u (0x%x) bytes", aFontFileSize, aFontFileSize ); // check the Offset Table at the start of the file TBuf8<16> fileBuffer; @@ -2374,9 +2382,7 @@ if ( (numTables == 0) || (numTables & 0xF0000000) || (tableStart > aFontFileSize) ) { -#ifdef _DEBUG - RDebug::Print(_L("# of tables (%i) in ttf is invalid\n"), numTables); -#endif + OstTrace1( TRACE_DUMP, DUP1_CFONTSTORE_SANITYCHECKFORTTFL, "# of tables (%d) in ttf is invalid, Leave(KErrCorrupt)", numTables ); User::Leave(KErrCorrupt); } @@ -2393,10 +2399,8 @@ if ( (searchRange < 16) || (entrySelector > 24) || (aStrictChecking && (rangeShift != ( (numTables << 4) - searchRange )) ) ) { -#ifdef _DEBUG - RDebug::Print(_L("searchRange (0x%x), entrySelector (0x%x) or rangeShift (0x%x) invalid for numTables (%i)\n"), - searchRange, entrySelector, rangeShift, numTables); -#endif + OstTraceExt4( TRACE_DUMP, DUP2_CFONTSTORE_SANITYCHECKFORTTFL, "searchRange (0x%x), entrySelector (0x%x) or rangeShift (0x%x) invalid for numTables (%d), Leave(KErrCorrupt)", + searchRange, entrySelector, rangeShift, numTables ); User::Leave(KErrCorrupt); } @@ -2404,9 +2408,8 @@ TUint exp = 1 << entrySelector; // log to exponent if ( (numTables < exp) || (numTables > (exp << 1)) ) { -#ifdef _DEBUG - RDebug::Print(_L("entrySelector (0x%x) wrong for numTables(%i)\n"), entrySelector, numTables); -#endif + OstTraceExt2( TRACE_DUMP, DUP3_CFONTSTORE_SANITYCHECKFORTTFL, "entrySelector (0x%x) wrong for numTables(%d), Leave(KErrCorrupt)", + entrySelector, numTables ); User::Leave(KErrCorrupt); } @@ -2433,10 +2436,8 @@ // table Tags must be unique & in order if (tableTag <= lastTableTag) { -#ifdef _DEBUG - RDebug::Print(_L("ttf table tag ('%c%c%c%c') is out of order\n"), - tableTag >> 24, (tableTag >> 16) & 0x7F, (tableTag >> 8) & 0x7F, tableTag & 0x7F); -#endif + OstTraceExt4( TRACE_DUMP, DUP4_CFONTSTORE_SANITYCHECKFORTTFL, "ttf table tag ('%c%c%c%c') is out of order, Leave(KErrCorrupt)", + tableTag >> 24, (tableTag >> 16) & 0x7F, (tableTag >> 8) & 0x7F, tableTag & 0x7F); User::Leave(KErrCorrupt); } @@ -2446,9 +2447,8 @@ TInt end = length + offset; if ( (offset & 3) || (offset < tableStart) || (length == 0) || (end < offset) || (end > aFontFileSize)) { -#ifdef _DEBUG - RDebug::Print(_L("offset (0x%x) or length (0x%x) are bad\n"), offset, length); -#endif + OstTraceExt2( TRACE_DUMP, DUP5_CFONTSTORE_SANITYCHECKFORTTFL, "offset (0x%x) or length (0x%x) are bad, Leave(KErrCorrupt)", + offset, length ); User::Leave(KErrCorrupt); } @@ -2469,10 +2469,8 @@ // for single font files highestTableEnd & totalFontSize should be the same if (highestTableEnd != totalFontSize) { -#ifdef _DEBUG - RDebug::Print(_L("Total Font Size (0x%x) is different from end of the last table (0x%x)\n"), - highestTableEnd, totalFontSize); -#endif + OstTraceExt2( TRACE_DUMP, DUP6_CFONTSTORE_SANITYCHECKFORTTFL, "Total Font Size (0x%x) is different from end of the last table (0x%x), Leave(KErrCorrupt)", + highestTableEnd, totalFontSize); User::Leave(KErrCorrupt); } } @@ -3624,7 +3622,9 @@ } else { - __ASSERT_DEBUG(EFalse, Panic(EFntNoFontFound)); + OstTraceExt2( TRACE_FATAL, CFONTSTORE_GETNEARESTFONTINPIXELS, "GetNearestOpenFontInPixelsL() return %d, openFont is 0x%x, Panic(EFntNoFontFound)", + error, (unsigned int)openFont); + __ASSERT_DEBUG(0, Panic(EFntNoFontFound)); return KErrGeneral; } } @@ -3774,8 +3774,13 @@ aTypefaceSupport = *iOpenFontTypefaceSupportList[aTypefaceIndex - iTypefaceList.Count()]->TypefaceSupport(); return; } - - __ASSERT_DEBUG((aTypefaceIndex >= 0) && (aTypefaceIndex < iTypefaceList.Count()),Panic(EFntTypefaceIndexOutOfRange)); + + if (!((aTypefaceIndex >= 0) && (aTypefaceIndex < iTypefaceList.Count()))) + { + OstTraceExt2( TRACE_FATAL, CFONTSTORE_TYPEFACESUPPORT, "aTypefaceIndex=%d, iTypefaceList.Count()=%d Panic(EFntTypefaceIndexOutOfRange)", + aTypefaceIndex, iTypefaceList.Count()); + __ASSERT_DEBUG(0,Panic(EFntTypefaceIndexOutOfRange)); + } TTypeface* typeface = iTypefaceList[aTypefaceIndex]; aTypefaceSupport.iTypeface = *typeface; TInt count = iTypefaceFontBitmapList.Count(); @@ -3933,7 +3938,11 @@ TUid uid; stream >> uid; CFontBitmap* fontbitmap = GetFontBitmapById(uid); - __ASSERT_DEBUG(fontbitmap,Panic(EFntFontBitmapNotLoaded)); + if (!fontbitmap) + { + OstTrace0( TRACE_FATAL, CFONTSTORE_INTERNALIZEFONTSTOREFILEL, "Panic(EFntFontBitmapNotLoaded)" ); + __ASSERT_DEBUG(0,Panic(EFntFontBitmapNotLoaded)); + } #ifndef _DEBUG User::LeaveIfNull(fontbitmap); #endif @@ -3992,7 +4001,11 @@ TTypeface* CFontStore::GetNearestTypeface(const TTypeface& aTypeface) const { TInt index,count = iTypefaceList.Count(); - __ASSERT_DEBUG(count>0,Panic(EFntNoTypefaces)); + if (count <= 0) + { + OstTrace1( TRACE_FATAL, CFONTSTORE_GETNEARESTTYPEFACE, "count=%d, Panic(EFntNoTypefaces)", count ); + __ASSERT_DEBUG(0,Panic(EFntNoTypefaces)); + } for (index=0; (indexiName); index++) { // tries matching typeface name } @@ -4032,14 +4045,22 @@ { TTypefaceFontBitmap typefacefontbitmap; TInt count = iTypefaceFontBitmapList.Count(); - __ASSERT_DEBUG(count > 0, Panic(EFntNoTypefaceFontBitmaps)); + if (count <= 0) + { + OstTrace1( TRACE_FATAL, CFONTSTORE_GETNEARESTTYPEFACEFONTBITMAP, "count=%d, Panic(EFntNoTypefaceFontBitmaps)", count ); + __ASSERT_DEBUG(0, Panic(EFntNoTypefaceFontBitmaps)); + } TInt i; TInt j; // Assumes there is at least one fontbitmap per typeface for (i = 0; (i < count) && !(aFontSpecInPixels.iTypeface == *iTypefaceFontBitmapList[i].iTypeface); i++) { // Finds first fontbitmap with correct typeface } - __ASSERT_DEBUG(i < count, Panic(EFntTypefaceHasNoFontBitmaps)); + if (i >= count) + { + OstTraceExt2( TRACE_FATAL, DUP1_CFONTSTORE_GETNEARESTTYPEFACEFONTBITMAP, "i=%d, count=%d, Panic(EFntTypefaceHasNoFontBitmaps)", i, count ); + __ASSERT_DEBUG(i < count, Panic(EFntTypefaceHasNoFontBitmaps)); + } TTypeface* typeface = iTypefaceFontBitmapList[i].iTypeface; TInt height = 0; if (aMaxHeight > 0) @@ -4191,7 +4212,11 @@ // but with a sanity-check cutoff to round up past two-thirds TInt CFontStore::VerticalTwipsToPixels(TInt aTwipsHeight) const { - __ASSERT_DEBUG(iKPixelHeightInTwips,Panic(EFntKPixelHeightInTwipsZero)); + if (!iKPixelHeightInTwips) + { + OstTrace0( TRACE_FATAL, CFONTSTORE_VERTICALTWIPSTOPIXELS, "Panic(EFntKPixelHeightInTwipsZero)" ); + __ASSERT_DEBUG(0, Panic(EFntKPixelHeightInTwipsZero)); + } return ((aTwipsHeight * 1000) + (iKPixelHeightInTwips / 3)) / iKPixelHeightInTwips; // Rounds down below two-thirds of a twip } diff -r 6be019398652 -r 601ab138ba0b fontservices/fontstore/src/FNTUTIL.CPP --- a/fontservices/fontstore/src/FNTUTIL.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/fontservices/fontstore/src/FNTUTIL.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -18,9 +18,16 @@ #include "FNTSTD.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "FNTUTILTraces.h" +#endif + + GLDEF_C void Panic(TFntStorePanic aPanic) { _LIT(KFntStorePanicCategory,"FntStore"); + OstTrace1( TRACE_FATAL, _PANIC, "::Panic;aPanic=%x", ( TUint )&( aPanic ) ); User::Panic(KFntStorePanicCategory,aPanic); } diff -r 6be019398652 -r 601ab138ba0b fontservices/fontstore/src/OPENFONT.CPP --- a/fontservices/fontstore/src/OPENFONT.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/fontservices/fontstore/src/OPENFONT.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -27,6 +27,12 @@ #include #include +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "OPENFONTTraces.h" +#endif + + const TInt KSessionCacheEntries = 512; const TInt KDefaultSlantFactor = 20480; const TInt KOneIn16Dot16FixedPointFormat = 65536; @@ -1634,8 +1640,16 @@ EXPORT_C void TOpenFontMetrics::SetBaselineCorrection(TInt aBaselineCorrection) { - __ASSERT_DEBUG(aBaselineCorrection<(1<<(KBitsForUnderline-1)), Panic(EFntOverFlow)); - __ASSERT_DEBUG(aBaselineCorrection>(0-(1<<(KBitsForUnderline-1))), Panic(EFntOverFlow)); + if (aBaselineCorrection >= (1<<(KBitsForUnderline-1))) + { + OstTrace1( TRACE_FATAL, TOPENFONTMETRICS_SETBASELINECORRECTION, "aBaselineCorrection=%d, Panic(EFntOverFlow)", aBaselineCorrection ); + __ASSERT_DEBUG(0, Panic(EFntOverFlow)); + } + if (aBaselineCorrection <= (0-(1<<(KBitsForUnderline-1)))) + { + OstTrace1( TRACE_FATAL, DUP1_TOPENFONTMETRICS_SETBASELINECORRECTION, "aBaselineCorrection=%d, Panic(EFntOverFlow)", aBaselineCorrection ); + __ASSERT_DEBUG(0, Panic(EFntOverFlow)); + } TUint16 value = iBaselineCorrection; value &=~KMaskUnderline; //zero all the underline position bits @@ -2279,7 +2293,11 @@ TInt64 value(aValue); value = (value * aNumerator) / aDenominator; aValue = I64LOW(value); - __ASSERT_DEBUG(I64HIGH(value) == 0, Panic(EFntOverFlow)); + if (I64HIGH(value) != 0) + { + OstTrace1( TRACE_FATAL, TOPENFONTSPEC_APPLYRATIO, "value=%ld, Panic(EFntOverFlow)", value ); + __ASSERT_DEBUG(0, Panic(EFntOverFlow)); + } return I64HIGH(value) != 0; } diff -r 6be019398652 -r 601ab138ba0b fontservices/fontstore/tfs/T_IsolatedFontStore.cpp --- a/fontservices/fontstore/tfs/T_IsolatedFontStore.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/fontservices/fontstore/tfs/T_IsolatedFontStore.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1995-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -19,15 +19,21 @@ #include #include -CTIsolatedFontStore::CTIsolatedFontStore() +CTIsolatedFontStore::CTIsolatedFontStore():iIsHeapOwner(ETrue) { } +CTIsolatedFontStore::CTIsolatedFontStore(RHeap* aHeap):iIsHeapOwner(EFalse),iHeap(aHeap) + { + } + CTIsolatedFontStore::~CTIsolatedFontStore() { delete iFs; - if (iHeap) - iHeap->Close(); + if (iIsHeapOwner && iHeap) + { + iHeap->Close(); + } REComSession::FinalClose(); } @@ -46,9 +52,27 @@ return self; } +CTIsolatedFontStore* CTIsolatedFontStore::NewLC(RHeap * aHeap) + { + CTIsolatedFontStore* self = new (ELeave)CTIsolatedFontStore(aHeap); + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +CTIsolatedFontStore* CTIsolatedFontStore::NewL(RHeap * aHeap) + { + CTIsolatedFontStore* self=CTIsolatedFontStore::NewLC(aHeap); + CleanupStack::Pop(); // self; + return self; + } + void CTIsolatedFontStore::ConstructL() { - iHeap = UserHeap::ChunkHeap(NULL,0x10000,0x10000); + if(iIsHeapOwner) + { + iHeap = UserHeap::ChunkHeap(NULL,0x10000,0x10000); + } iFs = CFontStore::NewL(iHeap); } diff -r 6be019398652 -r 601ab138ba0b fontservices/fontstore/tfs/T_IsolatedFontStore.h --- a/fontservices/fontstore/tfs/T_IsolatedFontStore.h Fri Jun 11 15:33:54 2010 +0300 +++ b/fontservices/fontstore/tfs/T_IsolatedFontStore.h Tue Jul 06 16:23:19 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1995-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -35,12 +35,16 @@ static CTIsolatedFontStore* NewL(); static CTIsolatedFontStore* NewLC(); + + static CTIsolatedFontStore* NewL(RHeap*); + static CTIsolatedFontStore* NewLC(RHeap*); void LoadRasterizersL(); private: CTIsolatedFontStore(); + CTIsolatedFontStore(RHeap* aHeap); void ConstructL(); void ListImplementationsWithRetry(TUid& aInterfaceUid, RImplInfoPtrArray &aImplementationArray, TBool aRomOnly); void SafeInstallOfRasterizerL(TUid aInterfaceImplUid); @@ -49,6 +53,11 @@ CFontStore* iFs; private: RHeap* iHeap; + + // Indicate the ownership of iHeap. + // ETrue means iHeap is allocated in ConstructL() and owned by CTIsolatedFontStore in current process; + // EFalse means iHeap is a pointer to a heap which is passed in as parameter. Do not take ownership. + TBool iIsHeapOwner; }; #endif // TISOLATEDFONTSTORE_H diff -r 6be019398652 -r 601ab138ba0b fontservices/fontstore/tfs/t_fontsessioncache.cpp --- a/fontservices/fontstore/tfs/t_fontsessioncache.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/fontservices/fontstore/tfs/t_fontsessioncache.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -22,33 +22,17 @@ */ #include "FNTSTORE.H" -#include "OPENFONT.H" -#include "FNTBODY.H" -#include "FNTSTD.H" #include "t_fontsessioncache.h" -#include -#include -#include +#include "T_IsolatedFontStore.h" _LIT(KWorkerProcess,"tfontsessioncacheproc"); +_LIT(KSharedChunk,"TestSharedChunk_T_FontSessionCache"); const TInt KNumOfProc = 4; const TInt KRunningTime = 1000 * 1000 * 5; -class CTFontSessionCache : public CTGraphicsBase - { -public: - CTFontSessionCache(CTestStep* aStep); - ~CTFontSessionCache(); - - static void TimerCleanup(TAny *); -protected: -// From CTGraphicsStep - virtual void RunTestCaseL(TInt aCurTestCase); -private: - void TestOpenFontForQtL(); - void RunMultiWorkerProcessL(); - }; +//Make sure font is large enough that font and session caches are used sufficiently. +const TInt KFontHeight = 250; // This class is a data mirror to CBitmapFont in order to check its private // member iOpenFont. It is only used by TestOpenFontForQtL(). @@ -64,16 +48,30 @@ TUint32 iUniqueFontId; }; -class CFbsFontUtil:public CFbsFont +class CTFontSessionCache : public CTGraphicsBase { public: - static CBitmapFontDummy *getBitmapFont(CFbsFont *aFbsfont) - { - return reinterpret_cast(static_cast(aFbsfont)->Address()); - } + CTFontSessionCache(CTestStep* aStep); + ~CTFontSessionCache(); + TInt Base(); + +protected: +// From CTGraphicsStep + virtual void RunTestCaseL(TInt aCurTestCase); + virtual void ConstructL(); +private: + void TestOpenFontForQtL(); + void RunMultiWorkerProcessL(); + + void FlushCaches(); + +private: + CTIsolatedFontStore *iIFontStore; + RHeap *iSharedHeap; + RChunk iChunk; + CFont *iFont; }; - CTFontSessionCache::CTFontSessionCache(CTestStep* aStep) : CTGraphicsBase(aStep) { @@ -82,46 +80,96 @@ CTFontSessionCache::~CTFontSessionCache() { - // no action needed + iIFontStore->iFs->ReleaseFont(iFont); + delete iIFontStore; + iChunk.Close(); + } + +inline TInt CTFontSessionCache::Base() + { + return reinterpret_cast(iChunk.Base()); } -void CTFontSessionCache::TimerCleanup(TAny *aTimer) +void CTFontSessionCache::ConstructL() { - ((RTimer*)aTimer)->Cancel(); + User::LeaveIfError(iChunk.CreateGlobal(KNullDesC,500,500)); + iSharedHeap = UserHeap::ChunkHeap(iChunk,0x10000,0x1000,0x10000,0,EFalse,0); + if(iSharedHeap == NULL) + { + RDebug::Print(_L("iSharedHeap = NULL")); + User::Leave(KErrNoMemory); + } + iIFontStore = CTIsolatedFontStore::NewL(iSharedHeap); + iIFontStore->LoadRasterizersL(); + iIFontStore->iFs->LoadFontsAtStartupL(); + + _LIT(KTypefaceName, "DejaVu Sans Condensed"); + TFontSpec spec(KTypefaceName, KFontHeight); + + TInt ret = iIFontStore->iFs->GetNearestFontToDesignHeightInPixels(iFont,spec); + TEST(ret == KErrNone); + + } + +void CTFontSessionCache::FlushCaches() + { + TText ch; + TOpenFontGlyphData *glyphData = NULL; + for (TInt sHandle = 0; sHandle < KNumOfProc; sHandle++) + { + for (ch = 'A'; ch <= 'z'; ch++) + { + static_cast (iFont)->Rasterize(sHandle, ch, glyphData); + } + } } /** -Qt needs the last bit of iOpenFont to be set 1 as a workaround to maintain -its compatibility across difference Symbian OS versions. + @SYMTestCaseID + TI18N-FNTSTORE-UT--4003 + + @SYMTestCaseDesc + Qt needs the last bit of iOpenFont to be set 1 as a workaround to maintain + its compatibility across difference Symbian OS versions. + + @SYMTestActions + 1. Get a CBitmapFont in the constructor + 2. Check the LSB of its iOpenFont by using CBitmapFontDummy + + @SYMTestExpectedResults + Test should pass */ + void CTFontSessionCache::TestOpenFontForQtL() - { - _LIT(KTypefaceName, "DejaVu Sans Condensed"); - TFontSpec spec(KTypefaceName, 15); - CFbsTypefaceStore *tfs = CFbsTypefaceStore::NewL(NULL); - - CFont* font = NULL; - TInt ret = tfs->GetNearestFontToDesignHeightInPixels(font,spec); - TEST(ret == KErrNone); - - CFbsFont *fbs_font = static_cast(font); - TEST(reinterpret_cast((CFbsFontUtil::getBitmapFont(fbs_font))->iOpenFont) & 1); - - tfs->ReleaseFont(font); - delete tfs; + { + TEST(reinterpret_cast(reinterpret_cast(iFont)->iOpenFont) & 1); } -/* - * Launch 4 worker processes running with random latency at beginning. - * Each one lasts about 1 sec. Within duration of 5 sec, if one terminates, - * re-launch it. - * - */ +/** + @SYMTestCaseID + TI18N-FNTSTORE-CIT-4002 + + @SYMTestCaseDesc + This case is to test the safty of actions over the shared heap. + + @SYMTestActions + 1. Shared heap is initialised in the constructor + 2. Run rasterizing function to Flush the font caches(glyph tree and session cache). + 3. Launch KNumOfProc worker processes running with random latency at beginning, which + is to seach the cache from different processes. The globle chunk and font handles are + passed via process environment variables. + 4. Each one lasts about 1 sec. Within duration of 5 sec, if one terminates, re-launch it. + + @SYMTestExpectedResults + Test should pass without any Panic. +*/ void CTFontSessionCache::RunMultiWorkerProcessL() { RProcess ProcArray[KNumOfProc]; TRequestStatus *completeStatus[KNumOfProc]; + FlushCaches(); + for (TInt i = 0; i < KNumOfProc; i++) { RDebug::Print(_L(">>> Launching %d..."),i); @@ -129,6 +177,11 @@ err = ProcArray[i].Create(KWorkerProcess, KNullDesC); User::LeaveIfError(err); + TInt FontOffset = reinterpret_cast(iFont) - Base(); + ProcArray[i].SetParameter(1,iChunk); + ProcArray[i].SetParameter(2,FontOffset); + ProcArray[i].SetParameter(3,i); + completeStatus[i] = new(ELeave) TRequestStatus; CleanupStack::PushL(completeStatus[i]); *completeStatus[i] = KRequestPending; @@ -167,7 +220,12 @@ TInt err; err = ProcArray[i].Create(KWorkerProcess, KNullDesC); User::LeaveIfError(err); - + + TInt FontOffset = reinterpret_cast(iFont) - Base(); + ProcArray[i].SetParameter(1,iChunk); + ProcArray[i].SetParameter(2,FontOffset); + ProcArray[i].SetParameter(3,i); + //run process 1 *completeStatus[i] = KRequestPending; ProcArray[i].Logon(*completeStatus[i]); @@ -184,16 +242,11 @@ RDebug::Print(_L("<<< Tear down Close %d..."),i); ProcArray[i].Close(); //tear down } - CleanupStack::PopAndDestroy(4); + CleanupStack::PopAndDestroy(KNumOfProc); } void CTFontSessionCache::RunTestCaseL( TInt aCurTestCase ) { -#if defined __WINS__ || defined __WINSCW__ - aCurTestCase = aCurTestCase; //to avoid unused warning - // TestComplete(); //only run test on hardware, always passes on winscw - // return; -#endif ((CTFontSessionCacheStep*) iStep)->SetTestStepID(KUnknownSYMTestCaseIDName); switch (aCurTestCase) diff -r 6be019398652 -r 601ab138ba0b fontservices/fontstore/tfs/t_fontsessioncacheproc.cpp --- a/fontservices/fontstore/tfs/t_fontsessioncacheproc.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/fontservices/fontstore/tfs/t_fontsessioncacheproc.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -21,17 +21,7 @@ @internalComponent - Internal Symbian test code */ -#include -#include -#include -#include -#include #include "FNTSTORE.H" -#include "FNTBODY.H" -#include "FNTSTD.H" -#include -#include -#include #include _LIT(KOpenFont, "DejaVu Sans Condensed"); @@ -42,119 +32,53 @@ #endif const TInt KTimeOut = 1000 * 1000; -//make sure that the font is large enough to ensure that the session -//cache is used. -const TInt KTextHight = 220; + + +_LIT(KTCacheDeletionProcess,"T_fontsessioncacheproc"); /* it is expected that the main in this file will be called to test multiple -process output at the same time a process is being deleted (font and bitmap server -disconnection. There are normally two instances of this process. Two virtually -identical processes are required to ensure that the session ID is the same. - -The first is with aThirdProcess set. This sets output to run in a loop until -the timeout is completed. These values are input via program arguments. - -If aThirdProcess is false then only one font creation, draw text, -font deletion cycle is completed. The test code will then repeatedly run -this process with aThirdProcess set to false. +process cache searching which is in the shared heap. */ - -class TRunProc: public CBase +class CRunProc: public CBase { public: - static TRunProc* NewL(); void RunTestL(); - ~TRunProc(); + CRunProc(); + ~CRunProc(); + + inline void setFont(CFont*); + inline void setHandle(TInt); private: - TRunProc(){}; - void ConstructL(); - void DrawText(); void CreateFontL(); private: - RFbsSession* iFbs; - CFbsBitGc* iGc; - CFbsScreenDevice* iDev; - CFbsFont *iFbsFont; + CBitmapFont* iFont; + TInt iSessionHandle; }; -TRunProc::~TRunProc() +CRunProc::CRunProc() { - delete iGc; - delete iDev; - iFbs->Disconnect(); + } -void TRunProc::ConstructL() +CRunProc::~CRunProc() { - TInt err = RFbsSession::Connect(); - User::LeaveIfError(err); - iFbs = RFbsSession::GetSession(); - User::LeaveIfNull(iFbs); - const TInt KDisplayMode = 3; - TDisplayMode mode[KDisplayMode]; - mode[0] = EColor16MA; - mode[1] = EColor16MU; - mode[2] = EColor64K; - - TInt count; - for (count = 0; count < KDisplayMode; count++) - { - TRAP(err, iDev = CFbsScreenDevice::NewL(KNullDesC, mode[count])); - if (err != KErrNotSupported) - { - break; - } - } - - User::LeaveIfNull(iDev); - - if(err == KErrNone) - { - iDev->ChangeScreenDevice(NULL); - iDev->SetAutoUpdate(ETrue); - iDev->CreateContext(iGc); - } - User::LeaveIfNull(iGc); } -TRunProc* TRunProc::NewL() +inline void CRunProc::setFont(CFont* aFont) { - TRunProc *ptr = new (ELeave) TRunProc; - CleanupStack::PushL(ptr); - ptr->ConstructL(); - CleanupStack::Pop(); - return ptr; + iFont = static_cast(aFont); } -void TRunProc::CreateFontL() +inline void CRunProc::setHandle(TInt aSessionHandle) { - TOpenFontSpec openFontSpec; - openFontSpec.SetName(KOpenFont); - openFontSpec.SetHeight(KTextHight); - openFontSpec.SetItalic(EFalse); - openFontSpec.SetBold(EFalse); - - TTypeface Typeface; - Typeface.iName = KOpenFont; - TFontSpec fs; - fs.iTypeface = Typeface; - - fs.iHeight = KTextHight; - CFbsFont* font = NULL; - TInt err = iDev->GetNearestFontToDesignHeightInPixels(font, fs); - - User::LeaveIfNull(font); - - // Use the font - iFbsFont = font; - iGc->UseFont(font); - iGc->Clear(); + iSessionHandle = aSessionHandle; } -void TRunProc::RunTestL() + +void CRunProc::RunTestL() { TTime theTime; theTime.UniversalTime(); @@ -168,56 +92,57 @@ TTimeIntervalMicroSeconds32 timeout(KTimeOut); timer.After(timerStatus, timeout); - CreateFontL(); - RDebug::Print(_L("DrawText()random=%d"), random); - DrawText(); - TText ch; - const TUint8 *bitmap; + const TUint8 *bitmap = NULL; TSize bitmapsize; - TOpenFontCharMetrics Metrics; + TOpenFontCharMetrics Metrics; do { - for (ch = 'A'; ch <= 'Z'; ch++) + TInt hitcount = 0; + for (ch = 'A'; ch <= 'z'; ch++) { - iFbsFont->GetCharacterData((TInt) ch, Metrics, bitmap,bitmapsize); + if(iFont->GetCharacterData(iSessionHandle, (TInt)ch, Metrics,bitmap)) + { + //RDebug::Print(_L("%c hit bitmap[0]=%x"),ch,bitmap[0]); + TUint8 testbyte = bitmap[0]; + testbyte += testbyte; + __ASSERT_ALWAYS((testbyte & 0x01) == 0, User::Panic(KTCacheDeletionProcess, KErrGeneral)); + hitcount++; + } + else + { + //RDebug::Print(_L("%c missed"),ch); + } } + __ASSERT_ALWAYS(hitcount > 0, User::Panic(KTCacheDeletionProcess, KErrNotFound)); } while (timerStatus == KRequestPending); timer.Cancel(); - iGc->DiscardFont(); timer.Close(); } - - -void TRunProc::DrawText() - { - TText ch[2]; - ch[1] = '\0'; - for (ch[0] = 'A';ch[0] <= 'Z';ch[0]++) - { - TBufC<2> buf(ch); - iGc->DrawText(buf,TPoint(10,100)); - } - for (ch[0] = 'a';ch[0] <= 'z';ch[0]++) - { - TBufC<2> buf(ch); - iGc->DrawText(buf,TPoint(10,100)); - } - } - - void MainL() { - TRunProc* test = TRunProc::NewL(); + RChunk gChunk; + User::LeaveIfError(gChunk.Open(1)); + CleanupClosePushL(gChunk); + + TInt offset; + User::LeaveIfError(User::GetTIntParameter(2,offset)); + TInt SessionHandle; + User::LeaveIfError(User::GetTIntParameter(3,SessionHandle)); + + CRunProc *test = new (ELeave) CRunProc; + + test->setFont(reinterpret_cast(offset + reinterpret_cast(gChunk.Base()))); + test->setHandle(SessionHandle); CleanupStack::PushL(test); RDebug::Print(_L("T_fontsessioncacheproc MainL()")); test->RunTestL(); - - CleanupStack::PopAndDestroy(); + + CleanupStack::PopAndDestroy(2); } // Cleanup stack harness @@ -225,8 +150,7 @@ { __UHEAP_MARK; CTrapCleanup* cleanupStack = CTrapCleanup::New(); - TRAPD(error, MainL()); - _LIT(KTCacheDeletionProcess,"T_fontsessioncacheproc"); + TRAPD(error, MainL()); __ASSERT_ALWAYS(!error, User::Panic(KTCacheDeletionProcess, error)); delete cleanupStack; __UHEAP_MARKEND; diff -r 6be019398652 -r 601ab138ba0b fontservices/fontstore/traces/OstTraceDefinitions.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/fontstore/traces/OstTraceDefinitions.h Tue Jul 06 16:23:19 2010 +0300 @@ -0,0 +1,24 @@ +/* +* Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __OSTTRACEDEFINITIONS_H__ +#define __OSTTRACEDEFINITIONS_H__ +// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler +// REMOVE BEFORE CHECK-IN TO VERSION CONTROL +// #define OST_TRACE_COMPILER_IN_USE +#include +#endif diff -r 6be019398652 -r 601ab138ba0b fontservices/fontstore/traces/fixed_id.definitions --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/fontstore/traces/fixed_id.definitions Tue Jul 06 16:23:19 2010 +0300 @@ -0,0 +1,46 @@ +/* +* Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt. +[GROUP]TRACE_DUMP=0x89 +[GROUP]TRACE_FATAL=0x81 +[GROUP]TRACE_IMPORTANT=0x85 +[TRACE]TRACE_DUMP[0x89]_CFONTSTORE_SANITYCHECKFORTTFL=0x3 +[TRACE]TRACE_DUMP[0x89]_DUP1_CFONTSTORE_SANITYCHECKFORTTFL=0x4 +[TRACE]TRACE_DUMP[0x89]_DUP2_CFONTSTORE_SANITYCHECKFORTTFL=0x5 +[TRACE]TRACE_DUMP[0x89]_DUP3_CFONTSTORE_SANITYCHECKFORTTFL=0x6 +[TRACE]TRACE_DUMP[0x89]_DUP4_CFONTSTORE_SANITYCHECKFORTTFL=0x7 +[TRACE]TRACE_DUMP[0x89]_DUP5_CFONTSTORE_SANITYCHECKFORTTFL=0x8 +[TRACE]TRACE_DUMP[0x89]_DUP6_CFONTSTORE_SANITYCHECKFORTTFL=0x9 +[TRACE]TRACE_DUMP[0x89]__READFROMFILEL=0x1 +[TRACE]TRACE_DUMP[0x89]__TTFTABLETAGFROMBUFFERL=0x2 +[TRACE]TRACE_FATAL[0x81]_CBITMAPFONT_DELETESHAPE=0x2 +[TRACE]TRACE_FATAL[0x81]_CBITMAPFONT_FONTBITMAP=0x3 +[TRACE]TRACE_FATAL[0x81]_CFONTSTORE_GETNEARESTFONTINPIXELS=0x5 +[TRACE]TRACE_FATAL[0x81]_CFONTSTORE_GETNEARESTTYPEFACE=0x8 +[TRACE]TRACE_FATAL[0x81]_CFONTSTORE_GETNEARESTTYPEFACEFONTBITMAP=0x9 +[TRACE]TRACE_FATAL[0x81]_CFONTSTORE_INTERNALIZEFONTSTOREFILEL=0x7 +[TRACE]TRACE_FATAL[0x81]_CFONTSTORE_TYPEFACESUPPORT=0x6 +[TRACE]TRACE_FATAL[0x81]_CFONTSTORE_VERTICALTWIPSTOPIXELS=0xb +[TRACE]TRACE_FATAL[0x81]_DUP1_CBITMAPFONT_FONTBITMAP=0x4 +[TRACE]TRACE_FATAL[0x81]_DUP1_CFONTSTORE_GETNEARESTTYPEFACEFONTBITMAP=0xa +[TRACE]TRACE_FATAL[0x81]_DUP1_TOPENFONTMETRICS_SETBASELINECORRECTION=0xe +[TRACE]TRACE_FATAL[0x81]_TCHARACTERMETRICSTABLE_METRIC=0x1 +[TRACE]TRACE_FATAL[0x81]_TOPENFONTMETRICS_SETBASELINECORRECTION=0xd +[TRACE]TRACE_FATAL[0x81]_TOPENFONTSPEC_APPLYRATIO=0xf +[TRACE]TRACE_FATAL[0x81]__PANIC=0xc +[TRACE]TRACE_IMPORTANT[0x85]_CBITMAPFONT_INSTALLOPENFONTSHAPER=0x1 diff -r 6be019398652 -r 601ab138ba0b fontservices/referencefonts/utils/bdfharn.cpp --- a/fontservices/referencefonts/utils/bdfharn.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/fontservices/referencefonts/utils/bdfharn.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -98,7 +98,7 @@ void CBDFHarness::ConstructL() { - RFbsSession::Connect(); + User::LeaveIfError(RFbsSession::Connect()); iFbs = RFbsSession::GetSession(); if (iFbs == NULL) User::Leave(KErrGeneral); @@ -128,7 +128,7 @@ } -void CBDFHarness::MakeBDFFont() +void CBDFHarness::MakeBDFFontL() { TOpenFontFaceAttrib attrib; iStandardFont->GetFaceAttrib(attrib); @@ -140,7 +140,7 @@ // Open file session RFs file_session; - file_session.Connect(); + User::LeaveIfError(file_session.Connect()); file_session.MkDir(_L("\\BDFfonts\\")); // Open file RFile file; diff -r 6be019398652 -r 601ab138ba0b fontservices/referencefonts/utils/bdfharn.h --- a/fontservices/referencefonts/utils/bdfharn.h Fri Jun 11 15:33:54 2010 +0300 +++ b/fontservices/referencefonts/utils/bdfharn.h Tue Jul 06 16:23:19 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -32,7 +32,7 @@ public: static CBDFHarness* NewL(const TDesC &aTitle, const TDesC &aHeading); ~CBDFHarness(); - void MakeBDFFont(); + void MakeBDFFontL(); void DecodeBitmap(TInt aWidth, TInt aPaddedWidth, TInt aHeight, const TUint8* aCodedBitmap, TUint8* aBitmap); TInt ReadBit(); diff -r 6be019398652 -r 601ab138ba0b fontservices/referencefonts/utils/ttf2bdf.cpp --- a/fontservices/referencefonts/utils/ttf2bdf.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/fontservices/referencefonts/utils/ttf2bdf.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -39,7 +39,7 @@ TRAP(error, bdfHarness = CBDFHarness::NewL(_L("MAKEBDF"),_L("TTF2BDF v2 - Make bitmap BDF font from scaleable font")); - bdfHarness->MakeBDFFont(); + bdfHarness->MakeBDFFontL(); delete bdfHarness; __UHEAP_MARKEND; ); diff -r 6be019398652 -r 601ab138ba0b localisation/localesupport/new_locale_dll/collation/share/locl_collation.h --- a/localisation/localesupport/new_locale_dll/collation/share/locl_collation.h Fri Jun 11 15:33:54 2010 +0300 +++ b/localisation/localesupport/new_locale_dll/collation/share/locl_collation.h Tue Jul 06 16:23:19 2010 +0300 @@ -20,7 +20,7 @@ #define __LOCL_COLLATION_H_ #if !defined(__E32STD_H__) -#include +#include #endif #ifdef _UNICODE diff -r 6be019398652 -r 601ab138ba0b textandlocutils/inlinetext/inc/InlineTextNoMatchesIndicatorSource.h --- a/textandlocutils/inlinetext/inc/InlineTextNoMatchesIndicatorSource.h Fri Jun 11 15:33:54 2010 +0300 +++ b/textandlocutils/inlinetext/inc/InlineTextNoMatchesIndicatorSource.h Tue Jul 06 16:23:19 2010 +0300 @@ -22,12 +22,12 @@ // INCLUDES -#include "inlinetextbase.h" +#include "InlineTextBase.h" #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS #include #else #include -#include +#include #endif // CONSTANTS diff -r 6be019398652 -r 601ab138ba0b textandlocutils/jplangutil/group/bld.inf --- a/textandlocutils/jplangutil/group/bld.inf Fri Jun 11 15:33:54 2010 +0300 +++ b/textandlocutils/jplangutil/group/bld.inf Tue Jul 06 16:23:19 2010 +0300 @@ -44,8 +44,8 @@ PRJ_TESTEXPORTS -../test/group/tjplangutil.iby CORE_MW_LAYER_IBY_EXPORT_PATH(tjplangutil.iby) +../test/group/tJPLangUtil.iby CORE_MW_LAYER_IBY_EXPORT_PATH(tjplangutil.iby) PRJ_TESTMMPFILES -../test/group/tjplangutil.mmp +../test/group/tJPLangUtil.mmp \ No newline at end of file diff -r 6be019398652 -r 601ab138ba0b textandlocutils/jplangutil/group/jplangutil.mmp --- a/textandlocutils/jplangutil/group/jplangutil.mmp Fri Jun 11 15:33:54 2010 +0300 +++ b/textandlocutils/jplangutil/group/jplangutil.mmp Tue Jul 06 16:23:19 2010 +0300 @@ -45,4 +45,4 @@ SOURCE jplangutil.cpp LIBRARY euser.lib -DEFFILE JPLANGUTIL.DEF +DEFFILE jplangutil.def diff -r 6be019398652 -r 601ab138ba0b textandlocutils/numbergrouping/conf/numbergrouping.confml Binary file textandlocutils/numbergrouping/conf/numbergrouping.confml has changed diff -r 6be019398652 -r 601ab138ba0b textandlocutils/numbergrouping/group/bld.inf --- a/textandlocutils/numbergrouping/group/bld.inf Fri Jun 11 15:33:54 2010 +0300 +++ b/textandlocutils/numbergrouping/group/bld.inf Tue Jul 06 16:23:19 2010 +0300 @@ -56,7 +56,7 @@ PRJ_TESTEXPORTS ../test/group/tnumbergrouping.iby CORE_MW_LAYER_IBY_EXPORT_PATH(tnumbergrouping.iby) -../test/group/101F8775.txt \epoc32\RELEASE\WINSCW\UDEB\Z\private\10202be9\101F8775.txt +../test/group/101F8775.txt /epoc32/RELEASE/WINSCW/UDEB/Z/private/10202be9/101F8775.txt PRJ_TESTMMPFILES ../test/group/tnumbergrouping.mmp diff -r 6be019398652 -r 601ab138ba0b textandlocutils/numbergrouping/src/NumberGrouping.cpp --- a/textandlocutils/numbergrouping/src/NumberGrouping.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/textandlocutils/numbergrouping/src/NumberGrouping.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -37,7 +37,7 @@ const TInt KMinimumLengthToGroup = 1; // No grouping occurs if fewer than this in unformatted buffer -#include +#include GLDEF_C void Panic(TNumberGroupingPanic aPanic) diff -r 6be019398652 -r 601ab138ba0b textandlocutils/numbergrouping/src/RegularExpression.cpp --- a/textandlocutils/numbergrouping/src/RegularExpression.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/textandlocutils/numbergrouping/src/RegularExpression.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -79,7 +79,8 @@ // rest of the method _so_ much easier to read CStateMachine* StateMachine = CStateMachine::NewLC(KNumOfRecognisedChars, desPattern.Length()); - iStateMachines.Append(StateMachine); + User::LeaveIfError(iStateMachines.Append(StateMachine)); + CleanupStack::Pop(); // now the ownership transfers to iStateMachines // parse the desPattern @@ -264,8 +265,6 @@ if(parseState != EAny) User::Panic(bufParsingError, KErrSyntaxError); - - CleanupStack::Pop(); // iStateMachine[nPatternCount] } } diff -r 6be019398652 -r 601ab138ba0b textandlocutils/numbergrouping/src/StateMachine.cpp --- a/textandlocutils/numbergrouping/src/StateMachine.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/textandlocutils/numbergrouping/src/StateMachine.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -139,8 +139,11 @@ { TInt nIndex = static_cast(aChar.GetNumericValue()); - aIndices.Append(nIndex); - aIndices.Append(KCharacterDot); + TInt ret = KErrNone; + ret |= aIndices.Append(nIndex); + ret |= aIndices.Append(KCharacterDot); + __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret)); + if (KErrNone != ret) return ret; return nIndex; } diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/group/FORM2.MMP --- a/textrendering/textformatting/group/FORM2.MMP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/group/FORM2.MMP Tue Jul 06 16:23:19 2010 +0300 @@ -30,7 +30,7 @@ sourcepath ../tbox userinclude ../tbox -userinclude ../inc +userinclude ../inc ../traces OS_LAYER_SYSTEMINCLUDE_SYMBIAN source CARET.CPP diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/group/TAGMA.MMP --- a/textrendering/textformatting/group/TAGMA.MMP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/group/TAGMA.MMP Tue Jul 06 16:23:19 2010 +0300 @@ -30,7 +30,7 @@ SOURCEPATH ../tagma userinclude ../tagma -userinclude ../inc +userinclude ../inc ../traces OS_LAYER_SYSTEMINCLUDE_SYMBIAN source TMCODE.CPP TMFORWRD.CPP TMGLYPH.CPP TMINTERP.CPP TMLAYOUT.CPP diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/group/Undo.mmp --- a/textrendering/textformatting/group/Undo.mmp Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/group/Undo.mmp Tue Jul 06 16:23:19 2010 +0300 @@ -31,7 +31,7 @@ SOURCEPATH ../undo userinclude ../undo -userinclude ../inc +userinclude ../inc ../traces OS_LAYER_SYSTEMINCLUDE_SYMBIAN source UniqueInstance.cpp UniqueInstanceImpl.cpp diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/tagma/TMGLYPH.CPP --- a/textrendering/textformatting/tagma/TMGLYPH.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/tagma/TMGLYPH.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -19,6 +19,11 @@ #include "TMSTD.H" #include +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TMGLYPHTraces.h" +#endif + inline TBool IsSurrogate(TText a) { return 0xD800 == (a & 0xF800); } @@ -312,6 +317,10 @@ TPtrC text; aSource.GetText(aStart, text, dummy); TInt textEnd = aStart + text.Length(); + if (aStart >= textEnd) + { + OstTrace0( TRACE_FATAL, DUP1__APPENDTEXTTOBUFFER, "EZeroLengthTextSupplied" ); + } __ASSERT_ALWAYS(aStart < textEnd, TmPanic(EZeroLengthTextSupplied)); if (aEnd < textEnd) { @@ -413,6 +422,10 @@ TDisplayedTextDirectionality aDirectionality, TText* aBuffer,TUint aContextChar, TTmCharFormat* aFormat, CTmTextFontCache** aFont) { + if (aStart > aEnd) + { + OstTrace0( TRACE_DUMP, RTMTEXTCACHE_GETDISPLAYEDTEXT, "EBadArg" ); + } __ASSERT_DEBUG(aStart <= aEnd, TmPanic(EBadArg)); if (aContextChar == 0) aBuffer[0] = 0xFFFF; diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/tagma/TMINTERP.CPP --- a/textrendering/textformatting/tagma/TMINTERP.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/tagma/TMINTERP.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -23,6 +23,11 @@ #include "TmHighlightSource.h" #include #include +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TMINTERPTraces.h" +#endif + TTmInterpreterParam::TTmInterpreterParam(const CTmTextLayout& aTextLayout): iByteCode(&aTextLayout.Code()), @@ -321,7 +326,11 @@ { iTmTextDrawExt = &iTmTextDrawExtDefault; } - __ASSERT_ALWAYS(iTmTextDrawExt != NULL, Panic(ENotImplemented)); + if(!iTmTextDrawExt) + { + OstTrace0( TRACE_FATAL, RTMGENERALINTERPRETER_RTMGENERALINTERPRETER, "ENotImplemented" ); + __ASSERT_ALWAYS(0, Panic(ENotImplemented)); + } } /** @@ -371,6 +380,10 @@ { while (Next()) { + if (Op() != EOpLine) + { + OstTrace0( TRACE_FATAL, TTMINTERPRETER_LINES, "ECorrupt" ); + } __ASSERT_ALWAYS(Op() == EOpLine, Panic(ECorrupt)); Skip(); } @@ -386,6 +399,10 @@ { while (Next()) { + if (Op() != EOpLine) + { + OstTrace0( TRACE_FATAL, TTMINTERPRETER_PARAGRAPHS, "ECorrupt" ); + } __ASSERT_ALWAYS(Op() == EOpLine, Panic(ECorrupt)); Skip(); } @@ -410,12 +427,20 @@ if (!Next()) return EFalse; + if (Op() != EOpLine) + { + OstTrace0( TRACE_FATAL, TTMINTERPRETER_DOCPOSTOLINE, "ECorrupt" ); + } __ASSERT_ALWAYS(Op() == EOpLine, Panic(ECorrupt)); while (!PosIsInLine(doc_pos)) { Skip(); if (!Next()) return EFalse; + if (Op() != EOpLine) + { + OstTrace0( TRACE_FATAL, DUP1_TTMINTERPRETER_DOCPOSTOLINE, "ECorrupt" ); + } __ASSERT_ALWAYS(Op() == EOpLine, Panic(ECorrupt)); } @@ -452,6 +477,10 @@ { while (Next()) { + if (Op() != EOpLine) + { + OstTrace0( TRACE_FATAL, TTMINTERPRETER_LINENUMBERTOLINE, "ECorrupt" ); + } __ASSERT_ALWAYS(Op() == EOpLine, Panic(ECorrupt)); if (iLineInfo.iLineNumber == aLineNumber) return TRUE; @@ -477,6 +506,10 @@ { while (Next()) { + if (Op() != EOpLine) + { + OstTrace0( TRACE_FATAL, TTMINTERPRETER_PARNUMBERTOLINE, "ECorrupt" ); + } __ASSERT_ALWAYS(Op() == EOpLine, Panic(ECorrupt)); if (iLineInfo.iParNumber == aParNumber) { @@ -498,6 +531,10 @@ { while (Next()) { + if (Op() != EOpLine) + { + OstTrace0( TRACE_FATAL, TTMINTERPRETER_YPOSTOLINE, "ECorrupt" ); + } __ASSERT_ALWAYS(Op() == EOpLine, Panic(ECorrupt)); if (iLineInfo.iOuterRect.iTl.iY <= aYPos && iLineInfo.iOuterRect.iBr.iY > aYPos) return TRUE; @@ -522,6 +559,10 @@ int width = 0; while (Next()) { + if (Op() != EOpLine) + { + OstTrace0( TRACE_FATAL, TTMINTERPRETER_WIDTHOFWIDESTLINE, "ECorrupt" ); + } __ASSERT_ALWAYS(Op() == EOpLine, Panic(ECorrupt)); // Quit if below the range. if (iLineInfo.iOuterRect.iTl.iY >= aBottom) @@ -562,6 +603,10 @@ return; while (iLineInfo.iOuterRect.iBr.iY < aTopY) { + if (Op() != EOpLine) + { + OstTrace0( TRACE_FATAL, TTMINTERPRETER_HORIZONTALEXTREMES, "ECorrupt" ); + } __ASSERT_ALWAYS(Op() == EOpLine, Panic(ECorrupt)); Skip(); if (!Next()) @@ -569,6 +614,10 @@ } while (iLineInfo.iOuterRect.iTl.iY <= aBottomY) { + if (Op() != EOpLine) + { + OstTrace0( TRACE_FATAL, DUP1_TTMINTERPRETER_HORIZONTALEXTREMES, "ECorrupt" ); + } __ASSERT_ALWAYS(Op() == EOpLine, Panic(ECorrupt)); if (iLineInfo.iInnerRect.iTl.iX < aLeft) aLeft = iLineInfo.iInnerRect.iTl.iX; @@ -716,6 +765,10 @@ if (!aByteCodeIterator.VisualEndOfLineIsAmbiguous()) iIgnorePosition = aByteCodeIterator.LineInfo().iEnd; + if (aByteCodeIterator.Op() != TTmInterpreter::EOpText) + { + OstTrace0( TRACE_DUMP, DUP1_RTMGRAPHEMEINTEXTCHUNKITERATOR_BEGIN, "EInvariant" ); + } __ASSERT_DEBUG(aByteCodeIterator.Op() == TTmInterpreter::EOpText, TmPanic(EInvariant)); if (iFont) @@ -788,6 +841,10 @@ */ TInt RTmGraphemeInTextChunkIterator::Next() { + if (AtEnd()) + { + OstTrace0( TRACE_DUMP, RTMGRAPHEMEINTEXTCHUNKITERATOR_NEXT, "EBadArg" ); + } __ASSERT_DEBUG(!AtEnd(), TmPanic(EBadArg)); TInt previousPositionInBuffer = iPosition.iPosInText; TInt previousPosition = iReverse? @@ -806,6 +863,10 @@ TInt numCodePoints = iPosition.iPosInText - previousPositionInBuffer; TInt currentPosition = iReverse? iEndChar - iPosition.iPosInText : iStartChar + iPosition.iPosInText; + if (currentPosition == previousPosition) + { + OstTrace0( TRACE_DUMP, DUP1_RTMGRAPHEMEINTEXTCHUNKITERATOR_NEXT, "EInvariant" ); + } __ASSERT_DEBUG(currentPosition != previousPosition, TmPanic(EInvariant)); TInt cachePos = 0; @@ -837,6 +898,10 @@ } ++cachePos; } + if (0 >= cachePos) + { + OstTrace0( TRACE_DUMP, DUP2_RTMGRAPHEMEINTEXTCHUNKITERATOR_NEXT, "EInvariant" ); + } __ASSERT_DEBUG(0 < cachePos, TmPanic(EInvariant)); return cachePos; } @@ -868,6 +933,10 @@ */ void RTmGraphemeInTextChunkIteratorNice::Next() { + if (AtEnd()) + { + OstTrace0( TRACE_DUMP, RTMGRAPHEMEINTEXTCHUNKITERATORNICE_NEXT, "EBadArg" ); + } __ASSERT_DEBUG(!AtEnd(), TmPanic(EBadArg)); // Return if we have not finished moving through the cache. if (++iCurrent != iEnd) @@ -910,6 +979,10 @@ */ void RTmGraphemeInTextChunkIteratorNice::FindEdge(const TTmDocPos& aDocPos) { + if (AtEnd()) + { + OstTrace0( TRACE_DUMP, RTMGRAPHEMEINTEXTCHUNKITERATORNICE_FINDEDGE, "EBadArg" ); + } __ASSERT_DEBUG(!AtEnd(), TmPanic(EBadArg)); while (RTmGraphemeEdgeIterator::ETotalMatch != RTmGraphemeEdgeIterator::DocPosMatches(aDocPos, *Get())) @@ -1056,6 +1129,10 @@ */ void RTmGraphemeEdgeIterator::Next() { + if (AtEnd()) + { + OstTrace0( TRACE_DUMP, RTMGRAPHEMEEDGEITERATOR_NEXT, "EBadArg" ); + } __ASSERT_DEBUG(!AtEnd(), TmPanic(EBadArg)); --iCacheSize; if (0 != iCacheSize) @@ -1078,6 +1155,10 @@ { // The WHILE loop assures that there is always sufficientByteCode avaliable. TBool haveSufficientByteCode = iByteCodeIterator->Next(); + if (!haveSufficientByteCode) + { + OstTrace0( TRACE_DUMP, DUP1_RTMGRAPHEMEEDGEITERATOR_NEXT, "EBadArg" ); + } __ASSERT_DEBUG(haveSufficientByteCode, TmPanic(EBadArg)); iByteCodeIterator->Skip(); @@ -1619,6 +1700,10 @@ : RTmTextCache::ELeftToRight; User::LeaveIfError(iTextCache.GetDisplayedText(StartChar(), EndChar(), directionality, buffer,aContextChar, 0, &font)); + if (!font) + { + OstTrace0( TRACE_DUMP, RTMGENERALINTERPRETER_GETDISPLAYEDTEXTL, "EInvariant" ); + } __ASSERT_DEBUG(font, TmPanic(EInvariant)); CFont::TPositionParam p; int length = EndChar() - StartChar() + 1; @@ -1966,6 +2051,10 @@ TBool RTmDrawingInterpreter::GetAdjustedHighlightClipRegion(const TRect& aClipRect, RRegion& aHighlightRegion) const { + if (NULL == iHighlightExtensions) + { + OstTrace0( TRACE_DUMP, RTMDRAWINGINTERPRETER_GETADJUSTEDHIGHLIGHTCLIPREGION, "EInvariant" ); + } __ASSERT_DEBUG(NULL != iHighlightExtensions, TmPanic(EInvariant)); aHighlightRegion.Clear(); @@ -2023,6 +2112,10 @@ TBool RTmDrawingInterpreter::GetFirstAdjustedHighlightClipRect(RTmBoundingRectInterpreter& aInterpreter, const TRect& aClipRect, TRect& aRect) const { + if (NULL == iHighlightExtensions) + { + OstTrace0( TRACE_DUMP, RTMDRAWINGINTERPRETER_GETFIRSTADJUSTEDHIGHLIGHTCLIPRECT, "EInvariant" ); + } __ASSERT_DEBUG(NULL != iHighlightExtensions, TmPanic(EInvariant)); if (iHighlightEndPos > iHighlightStartPos) @@ -2063,7 +2156,15 @@ TBool RTmDrawingInterpreter::GetNextAdjustedHighlightClipRect(RTmBoundingRectInterpreter& aInterpreter, const TRect& aClipRect, TRect& aRect) const { + if (NULL == iHighlightExtensions) + { + OstTrace0( TRACE_DUMP, RTMDRAWINGINTERPRETER_GETNEXTADJUSTEDHIGHLIGHTCLIPRECT, "EInvariant" ); + } __ASSERT_DEBUG(NULL != iHighlightExtensions, TmPanic(EInvariant)); + if (iHighlightEndPos <= iHighlightStartPos) + { + OstTrace0( TRACE_DUMP, DUP1_RTMDRAWINGINTERPRETER_GETNEXTADJUSTEDHIGHLIGHTCLIPRECT, "EInvariant" ); + } __ASSERT_DEBUG(iHighlightEndPos > iHighlightStartPos, TmPanic(EInvariant)); TBool found = aInterpreter.NextRect(aRect); @@ -3145,6 +3246,11 @@ TBool TTmByteCodeFinder::FindByteCode(TBool aToParStart,TBool aToParEnd,TInt aMaxExtraLines,TInfo& aInfo, TBidirectionalContext* aStartBdState,TBidirectionalContext* aEndBdState) { + if (!((aStartBdState && aEndBdState) + || (!aStartBdState && !aEndBdState))) + { + OstTrace0( TRACE_DUMP, TTMBYTECODEFINDER_FINDBYTECODE, "EBadArg" ); + } __ASSERT_DEBUG((aStartBdState && aEndBdState) || (!aStartBdState && !aEndBdState), TmPanic(EBadArg)); if (aStartBdState) @@ -3163,6 +3269,10 @@ TBool get_info = EFalse; while (Next()) { + if (Op() != EOpLine) + { + OstTrace0( TRACE_DUMP, DUP1_TTMBYTECODEFINDER_FINDBYTECODE, "ECorrupt" ); + } __ASSERT_ALWAYS(Op() == EOpLine, Panic(ECorrupt)); contextChar = LineContextCharChar(); foundStart = iStartDocPos >= StartChar() && iStartDocPos < EndChar(); @@ -3196,6 +3306,10 @@ do { // Operators must all be EOpLine because we're skipping from line to line + if (Op() != EOpLine) + { + OstTrace0( TRACE_FATAL, DUP3_TTMBYTECODEFINDER_FINDBYTECODE, "ECorrupt" ); + } __ASSERT_ALWAYS(Op() == EOpLine, Panic(ECorrupt)); aInfo.iBounds.iBr = LineInfo().iOuterRect.iBr; aInfo.iEndCodePos = EndCodePos(); @@ -3233,6 +3347,10 @@ TInt heightToSkip = aTotalHeight - aMaxHeight; TInt cumulativeHeight = 0; + if (!((aStartBdState && aEndBdState) || (!aStartBdState && !aEndBdState))) + { + OstTrace0( TRACE_DUMP, TTMBYTECODEFINDER_FINDBYTECODEATEND, "EBadArg" ); + } __ASSERT_DEBUG((aStartBdState && aEndBdState) || (!aStartBdState && !aEndBdState), TmPanic(EBadArg)); if (aStartBdState) { @@ -3246,6 +3364,10 @@ TBool foundStart = EFalse; while (Next()) { + if (Op() != EOpLine) + { + OstTrace0( TRACE_FATAL, DUP1_TTMBYTECODEFINDER_FINDBYTECODEATEND, "ECorrupt" ); + } __ASSERT_ALWAYS(Op() == EOpLine, Panic(ECorrupt)); if (cumulativeHeight > heightToSkip) { @@ -3267,6 +3389,10 @@ TBool foundEnd = EFalse; while (Next()) { + if (Op() != EOpLine) + { + OstTrace0( TRACE_FATAL, DUP2_TTMBYTECODEFINDER_FINDBYTECODEATEND, "ECorrupt" ); + } __ASSERT_ALWAYS(Op() == EOpLine, Panic(ECorrupt)); foundEnd = ETrue; aInfo.iBounds.iBr = LineInfo().iOuterRect.iBr; diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/tagma/TMLAYOUT.CPP --- a/textrendering/textformatting/tagma/TMLAYOUT.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/tagma/TMLAYOUT.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -26,6 +26,11 @@ #include #include "tmreformat.h" #include "frmUtils.h" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TMLAYOUTTraces.h" +#endif + #define UNUSED_VAR(a) a = a @@ -1061,6 +1066,10 @@ EXPORT_C TBool CTmTextLayout::GetDisplayedTextL(TInt aLineNumber, TDes& aText, TInt& aNeeded) const { + if (!iSource) + { + OstTrace0( TRACE_FATAL, CTMTEXTLAYOUT_GETDISPLAYEDTEXTL, "ENoSource" ); + } __ASSERT_ALWAYS(iSource, TmPanic(ENoSource)); RTmGeneralInterpreter interpreter(*iSource, TTmInterpreterParam(*this)); CleanupClosePushL(interpreter); diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/tagma/TMTEXT.CPP --- a/textrendering/textformatting/tagma/TMTEXT.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/tagma/TMTEXT.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -20,6 +20,11 @@ #include #include #include "TMSTD.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TMTEXTTraces.h" +#endif + /** * Creates a CTmText object using the specified device map and formatting parameters. @@ -189,6 +194,10 @@ const TTmCharFormat* aCharFormat,const RTmParFormat* aParFormat, TRect* aRedrawRect,TInt* aScroll) { + if (0 > aPos) + { + OstTrace0( TRACE_DUMP, CTMTEXTIMP_INSERTL, "EBadArg" ); + } __ASSERT_DEBUG(0 <= aPos, TmPanic(EBadArg)); // Don't insert zero-length text. @@ -342,6 +351,10 @@ static const TText end_par = CEditableText::EParagraphDelimiter; TInt index = 0; TInt textLength = iText.Length(); + if (aPos > textLength + 1) + { + OstTrace0( TRACE_DUMP, CTMTEXTIMP_GETTEXT, "EIndexOutOfRange" ); + } __ASSERT_DEBUG(aPos <= textLength + 1, TmPanic(EIndexOutOfRange)); if (aPos < textLength) { @@ -375,6 +388,10 @@ void CTmTextImp::GetParagraphFormatL(TInt aPos,RTmParFormat& aFormat) const { + if (0 > aPos || aPos > iText.Length()) + { + OstTrace0( TRACE_DUMP, CTMTEXTIMP_GETPARAGRAPHFORMATL, "EBadArg" ); + } __ASSERT_DEBUG(0 <= aPos && aPos <= iText.Length(), TmPanic(EBadArg)); TInt textLength = iText.Length(); if (0 == textLength) @@ -486,10 +503,11 @@ */ void CTmTextImp::RRunArray::FindRun(TInt aPos,TInt& aRunIndex,TInt& aOffset) const { -#ifdef _DEBUG - TInt error = -#endif - FindRunNonstrict(aPos, aRunIndex, aOffset); + TInt error = FindRunNonstrict(aPos, aRunIndex, aOffset); + if (error) + { + OstTrace0( TRACE_DUMP, RRUNARRAY_FINDRUN, "ETextRunNotFound" ); + } __ASSERT_DEBUG(!error, TmPanic(ETextRunNotFound)); } @@ -500,7 +518,15 @@ int end = 0; for (int i = 0; i < n; i++) { + if (0 > iRun[i].iLength) + { + OstTrace0( TRACE_DUMP, RRUNARRAY_FINDRUNNONSTRICT, "EInvalidTextRunLength" ); + } __ASSERT_DEBUG(0 <= iRun[i].iLength, TmPanic(EInvalidTextRunLength)); + if (0 > iRun[i].iIndex) + { + OstTrace0( TRACE_DUMP, DUP1_RRUNARRAY_FINDRUNNONSTRICT, "EInvalidTextRunIndex" ); + } __ASSERT_DEBUG(0 <= iRun[i].iIndex, TmPanic(EInvalidTextRunIndex)); end += iRun[i].iLength; if (end >= aPos) @@ -522,6 +548,10 @@ TInt CTmTextImp::RRunArray::RunAndStartPos(TInt aPos, TRun& aRunOut) const { TInt runs = iRun.Count(); + if (0 >= runs) + { + OstTrace0( TRACE_DUMP, RRUNARRAY_RUNANDSTARTPOS, "ETextRunNotFound" ); + } __ASSERT_DEBUG(0 < runs, TmPanic(ETextRunNotFound)); TInt start = 0; TInt end = 0; @@ -537,7 +567,15 @@ // Insert a run of length aLength and attribute aIndex at aPos; if aIndex is < 0, use the index at aPos. TInt CTmTextImp::RRunArray::Insert(TInt aPos,TInt aLength,TInt aIndex) { + if (0 >= aLength) + { + OstTrace0( TRACE_DUMP, RRUNARRAY_INSERT, "EInvalidTextRunLength" ); + } __ASSERT_DEBUG(0 < aLength, TmPanic(EInvalidTextRunLength)); + if (0 > aIndex && 0 >= iRun.Count()) + { + OstTrace0( TRACE_DUMP, DUP1_RRUNARRAY_INSERT, "EParagraphFormatRequired" ); + } __ASSERT_DEBUG(0 <= aIndex || 0 < iRun.Count(), TmPanic(EParagraphFormatRequired)); int error = 0; @@ -561,6 +599,10 @@ } TRun& run = iRun[run_index]; + if (0 > offset || offset > run.iLength) + { + OstTrace0( TRACE_DUMP, DUP2_RRUNARRAY_INSERT, "EInvariant" ); + } __ASSERT_DEBUG(0 <= offset && offset <= run.iLength, TmPanic(EInvariant)); // If aIndex is negative, it means don't change the attribute. @@ -594,7 +636,15 @@ TInt CTmTextImp::RRunArray::Set(TInt aPos,TInt aLength,TInt aIndex) { + if (0 > aLength) + { + OstTrace0( TRACE_DUMP, RRUNARRAY_SET, "EInvalidTextRunLength" ); + } __ASSERT_DEBUG(0 <= aLength, TmPanic(EInvalidTextRunLength)); + if (0 > aIndex) + { + OstTrace0( TRACE_DUMP, DUP1_RRUNARRAY_SET, "EInvalidTextRunIndex" ); + } __ASSERT_DEBUG(0 <= aIndex, TmPanic(EInvalidTextRunIndex)); if (aLength == 0) @@ -673,6 +723,10 @@ void CTmTextImp::RRunArray::Delete(TInt aPos,TInt aLength) { + if (0 > aLength) + { + OstTrace0( TRACE_DUMP, RRUNARRAY_DELETE, "EInvalidTextRunLength" ); + } __ASSERT_DEBUG(0 <= aLength, TmPanic(EInvalidTextRunLength)); if (aLength == 0) diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/tagma/TmBufferBase.cpp --- a/textrendering/textformatting/tagma/TmBufferBase.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/tagma/TmBufferBase.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -15,6 +15,11 @@ * */ +#include "TMSTD.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TmBufferBaseTraces.h" +#endif #include "TMSTD.H" @@ -26,7 +31,10 @@ void CTmBufferBase::Truncate(TInt aLength) { if (aLength > iLength || aLength < 0) + { + OstTrace0( TRACE_FATAL, CTMBUFFERBASE_TRUNCATE, "EBadTruncationLength" ); TmPanic(EBadTruncationLength); + } iLength = aLength; } diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/tagma/TmChunk.cpp --- a/textrendering/textformatting/tagma/TmChunk.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/tagma/TmChunk.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -20,6 +20,11 @@ #include "InlineText.h" #include "frmUtils.h" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TmChunkTraces.h" +#endif + TTmChunk::TTmChunk(): iDocPos(0), @@ -496,6 +501,10 @@ measure - (iInitialInlineWidth + iFinalInlineWidth), &text_metrics); // Check WidthL (probably MeasureText inside it) doesn't come back // with a value larger than the max we specified - shouldn't happen + if (text_metrics.iChars > iTextLength) + { + OstTrace0( TRACE_DUMP, TTMCHUNK_SETL, "EInvariant" ); + } __ASSERT_DEBUG(text_metrics.iChars <= iTextLength, TmPanic(EInvariant)); if (text_metrics.iChars < iTextLength) { diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/tagma/TmHighlightSource.cpp --- a/textrendering/textformatting/tagma/TmHighlightSource.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/tagma/TmHighlightSource.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -18,6 +18,11 @@ #include "TmHighlightSource.h" #include +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TmHighlightSourceTraces.h" +#endif + // MTmSource derivatives that can draw text in the appropriate highlight colours @@ -45,6 +50,7 @@ if(!iTmTextDrawExt) { iTmTextDrawExt = &iTmTextDrawExtDefault; + OstTrace0( TRACE_FATAL, TTMHIGHLIGHTSOURCE_TTMHIGHLIGHTSOURCE, "Invariant" ); } __ASSERT_ALWAYS(iTmTextDrawExt, User::Invariant()); diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/tagma/TmLine.cpp --- a/textrendering/textformatting/tagma/TmLine.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/tagma/TmLine.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -22,6 +22,11 @@ #include "InlineText.h" #include "frmUtils.h" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TmLineTraces.h" +#endif + inline TBool IsSurrogate(TText a) { return 0xD800 == (a & 0xF800); } inline TBool IsHighSurrogate(TText a) { return 0xD800 == (a & 0xFC00); } inline TBool IsLowSurrogate(TText a) { return 0xDC00 == (a & 0xFC00); } @@ -606,6 +611,10 @@ if (chunk.iOverlappingChars > 0 && ! chunkInfo.iAtLineEnd && ! chunkInfo.iAtParEnd) { aStartChar -= chunk.iOverlappingChars; + if (aStartChar < 0) + { + OstTrace0( TRACE_DUMP, CTMLINE_APPENDCHUNKL, "EInvariant" ); + } __ASSERT_DEBUG(aStartChar >= 0, TmPanic(EInvariant)); } @@ -989,12 +998,20 @@ void CTmLine::WriteInlineTextL(CTmFormatContext& aContext, CTmCode& aCode, TInt aPos, TInt aInlineWidth, TBool aLeadingEdge, TInt aInlineFormat) { MTmInlineTextSource* inlineTextApi = (MTmInlineTextSource*)aContext.iSource.GetExtendedInterface(KInlineTextApiExtensionUid); + if (inlineTextApi==0) + { + OstTrace0( TRACE_DUMP, CTMLINE_WRITEINLINETEXTL, "EInvariant" ); + } __ASSERT_DEBUG(inlineTextApi!=0,TmPanic(EInvariant)); TTmDocPos startDocPos(aPos, aLeadingEdge); TPtrC inlineText = inlineTextApi->GetInlineText(startDocPos); TUint8 op2 = TTmInterpreter::EOpInlineText; TInt inlineLength = inlineText.Length(); + if (inlineLength > TTmInterpreter::EMaxInlineChars) + { + OstTrace0( TRACE_DUMP, DUP1_CTMLINE_WRITEINLINETEXTL, "EInvariant" ); + } __ASSERT_DEBUG(inlineLength <= TTmInterpreter::EMaxInlineChars,TmPanic(EInvariant)); if (inlineLength > 1) op2 |= TTmInterpreter::EModCount; diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/tbox/CARET.CPP --- a/textrendering/textformatting/tbox/CARET.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/tbox/CARET.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -20,6 +20,11 @@ #include "FRMLAYDT.H" #include "FRMCONST.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "CARETTraces.h" +#endif + #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include "FRMCONST_INTERNAL.H" #include "FRMCONST_PARTNER.H" @@ -37,6 +42,11 @@ void TCursorPosition::CheckSelection(TBool aSelect) { + if (IsSelection() && iDocPos.iPos == iAnchor) + { + OstTrace0( TRACE_DUMP, TCURSORPOSITION_CHECKSELECTION, "EFSelectedRangeZeroLen" ); + } + __ASSERT_DEBUG(!IsSelection() || iDocPos.iPos != iAnchor,FormPanic(EFSelectedRangeZeroLen)); CheckNullSelection(); TUint drawSelectionFlags = 0; @@ -107,6 +117,10 @@ TInt extraScroll; TBool cursorVisible = EFalse; + if (aSelection.iCursorPos<0 || aSelection.iCursorPos>iLayout->DocumentLength()) + { + OstTrace0( TRACE_DUMP, TCURSORPOSITION_SETSELECTIONL, "EFInvalidDocPos" ); + } __ASSERT_DEBUG(aSelection.iCursorPos>=0 && aSelection.iCursorPos<=iLayout->DocumentLength() ,FormPanic(EFInvalidDocPos)); iLayout->PosRangeInBand(firstVisChar); @@ -287,6 +301,10 @@ CheckSelection(aDragSelectOn); DoSetXyPos(aPos); TRAPD(ret,pixels=CheckCursorOnScreenL(aPos.iY)); + if (ret) + { + OstTrace0( TRACE_FATAL, TCURSORPOSITION_SETXYPOSL, "EFShouldNotLeave" ); + } __ASSERT_ALWAYS(!ret,FormPanic(EFShouldNotLeave)); UpdateLatentX(aPos.iX); UpdateLatentY(aPos.iY); @@ -548,6 +566,10 @@ TBool TCursorPosition::LeftRightL(TTmPosInfo2& aPos, TTmLineInfo& aLine, TMovementType& aMove) { TTmPosInfo2 posInfo; + if (!(aMove == EFLeft || aMove == EFRight)) + { + OstTrace0( TRACE_DUMP, TCURSORPOSITION_LEFTRIGHTL, "EFIncorrectCursorMovement" ); + } __ASSERT_DEBUG(aMove == EFLeft || aMove == EFRight, FormPanic(EFIncorrectCursorMovement)); TBool found = EFalse; @@ -613,6 +635,10 @@ @param aLine Returns details of the line containing aPos.*/ void TCursorPosition::StartEnd(TTmPosInfo2& aPos, TTmLineInfo& aLine, TMovementType& aMove) { + if (aMove != EFLineBeg && aMove != EFLineEnd) + { + OstTrace0( TRACE_DUMP, TCURSORPOSITION_STARTEND, "EFIncorrectCursorMovement" ); + } __ASSERT_DEBUG(aMove == EFLineBeg || aMove == EFLineEnd, FormPanic(EFIncorrectCursorMovement)); iLayout->FindDocPos(iDocPos, aPos, &aLine); @@ -632,6 +658,10 @@ @param aLine returns details of the line containing aPos. */ void TCursorPosition::UpDownL(TTmPosInfo2& aPos, TTmLineInfo& aLine, TMovementType& aMove) { + if (aMove != EFLineUp && aMove != EFLineDown) + { + OstTrace0( TRACE_DUMP, TCURSORPOSITION_UPDOWNL, "EFIncorrectCursorMovement" ); + } __ASSERT_DEBUG(aMove == EFLineUp || aMove == EFLineDown, FormPanic(EFIncorrectCursorMovement)); iLayout->FindDocPos(iDocPos, aPos, &aLine); @@ -677,6 +707,10 @@ // Move the display one page and put the cursor back in the same place (as far as possible). TInt TCursorPosition::PageScrollL(TMovementType& aMove) { + if (aMove!=EFPageUp && aMove!=EFPageDown) + { + OstTrace0( TRACE_DUMP, TCURSORPOSITION_PAGESCROLLL, "EFIncorrectCursorMovement" ); + } __ASSERT_DEBUG(aMove==EFPageUp || aMove==EFPageDown,FormPanic(EFIncorrectCursorMovement)); TPoint scrPos; TInt pixelsScrolled; @@ -725,6 +759,10 @@ TInt pixels=0; iLayout->GetLineRect(aY,cursorLine); + if (cursorLine.iTl.iY>aY || cursorLine.iBr.iY=aY,FormPanic(EFPixelNotInFormattedLine)); if (cursorLine.iTl.iY<0 && cursorLine.iBr.iY=botRow) + { + OstTrace0( TRACE_DUMP, DUP1_TCURSORPOSITION_CHECKCURSORONSCREENL, "EFCursorOffDisplay" ); + } __ASSERT_DEBUG(aY>=0 || aY=botRow || cursorLine.iBr.iY>=botRow + || (cursorLine.iTl.iY+pixels>=0 && cursorLine.iBr.iY+pixels<=botRow)) ) + { + OstTrace0( TRACE_DUMP, DUP2_TCURSORPOSITION_CHECKCURSORONSCREENL, "EFCursorOffDisplay" ); + } __ASSERT_DEBUG(cursorLine.Height()>=botRow || cursorLine.iBr.iY>=botRow || (cursorLine.iTl.iY+pixels>=0 && cursorLine.iBr.iY+pixels<=botRow),FormPanic(EFCursorOffDisplay)); return pixels; diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/tbox/FRMPAGE.CPP --- a/textrendering/textformatting/tbox/FRMPAGE.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/tbox/FRMPAGE.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -21,6 +21,11 @@ #include "FRMCONST.H" #include +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "FRMPAGETraces.h" +#endif + #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include "FRMCONST_INTERNAL.H" #include "FRMCONST_PARTNER.H" @@ -91,6 +96,10 @@ @param aPrinterDevice The printer device. */ EXPORT_C void CTextPaginator::SetPrinterDevice(CPrinterDevice* aPrinterDevice) { + if (!iLayout) + { + OstTrace0( TRACE_FATAL, CTEXTPAGINATOR_SETPRINTERDEVICE, "EFDocumentToPaginateNotSet" ); + } __ASSERT_ALWAYS(iLayout,FormPanic(EFDocumentToPaginateNotSet)); iPrinterDevice=aPrinterDevice; iLayout->SetImageDeviceMap(aPrinterDevice); @@ -168,6 +177,10 @@ Note: SetDocumentL() must have been called beforehand, or a panic occurs. */ EXPORT_C void CTextPaginator::PaginateCompleteDocumentL() { + if (!iLayout) + { + OstTrace0( TRACE_FATAL, CTEXTPAGINATOR_PAGINATECOMPLETEDOCUMENTL, "EFDocumentToPaginateNotSet" ); + } __ASSERT_ALWAYS(iLayout,FormPanic(EFDocumentToPaginateNotSet)); if (iPageList->Count()==0) iPageList->AppendL(iLayDoc->LdDocumentLength()); @@ -196,7 +209,15 @@ @return A count of the current number of pages. */ EXPORT_C TInt CTextPaginator::AppendTextL(TInt& aCumulativeDocPos) { + if (!iLayout) + { + OstTrace0( TRACE_FATAL, CTEXTPAGINATOR_APPENDTEXTL, "EFDocumentToPaginateNotSet" ); + } __ASSERT_ALWAYS(iLayout,FormPanic(EFDocumentToPaginateNotSet)); + if (aCumulativeDocPos>=iLayout->DocumentLength()) + { + OstTrace0( TRACE_FATAL, DUP1_CTEXTPAGINATOR_APPENDTEXTL, "EFInvalidDocPos" ); + } __ASSERT_ALWAYS(aCumulativeDocPosDocumentLength(),FormPanic(EFInvalidDocPos)); iMode=EFPaginateIncrementally; @@ -227,7 +248,9 @@ TRAPD(err,CopyTempPageListL()); if (err) + { LeaveL(err); + } return iPageList->Count(); } @@ -457,6 +480,10 @@ // Copies temp page list to one that external user sees // { + if (iTempPageList->Count()<1 && iMode!=EFPaginateIncrementally) + { + OstTrace0( TRACE_DUMP, CTEXTPAGINATOR_COPYTEMPPAGELISTL, "EFPageListEmpty" ); + } __ASSERT_DEBUG(iTempPageList->Count()>=1||iMode==EFPaginateIncrementally,FormPanic(EFPageListEmpty)); TRAPD(err,iPageList->ResizeL(iTempPageList->Count())); if (err) @@ -486,6 +513,8 @@ if (iObserver) iObserver->NotifyError(aErr); + OstTrace1( TRACE_FATAL, CTEXTPAGINATOR_LEAVEL, "CTextPaginator::LeaveL;aErr=%d", aErr ); + User::Leave(aErr); } diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/tbox/FRMPRINT.CPP --- a/textrendering/textformatting/tbox/FRMPRINT.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/tbox/FRMPRINT.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -19,6 +19,11 @@ #include "FRMPRINT.H" #include "FRMCONST.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "FRMPRINTTraces.h" +#endif + #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include "FRMCONST_INTERNAL.H" #include "FRMCONST_PARTNER.H" @@ -152,7 +157,19 @@ // Traps leaves // { + if (!iPageList) + { + OstTrace0( TRACE_FATAL, DUP1_CTEXTPAGEREGIONPRINTER_PRINTBANDL, "EFInvalidPageList" ); + } __ASSERT_ALWAYS(iPageList!=NULL,FormPanic(EFInvalidPageList)); + if (aPageNo-iFirstPage>=iPageList->Count()) + { + OstTrace0( TRACE_DUMP, CTEXTPAGEREGIONPRINTER_PRINTBANDL, "EFInvalidPageNumber" ); + } + if (aPageNoCount(),FormPanic(EFInvalidPageNumber)); __ASSERT_DEBUG(aPageNo>=iFirstPage,FormPanic(EFInvalidPageNumber)); @@ -384,7 +401,8 @@ delete iPictureGc; iPictureGc=NULL; - + + OstTrace1( TRACE_FATAL, CTEXTPAGEREGIONPRINTER_LEAVEL, "CTextPageRegionPrinter::LeaveL;aErr=%d", aErr ); User::Leave(aErr); } diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/tbox/FRMSCRND.CPP --- a/textrendering/textformatting/tbox/FRMSCRND.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/tbox/FRMSCRND.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -20,6 +20,11 @@ #include "FRMCONST.H" #include "FORMUTIL.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "FRMSCRNDTraces.h" +#endif + #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include "FRMCONST_INTERNAL.H" #include "FRMCONST_PARTNER.H" @@ -104,6 +109,10 @@ //Create and activate the main Graphics Context // { + if (iGc) + { + OstTrace0( TRACE_DUMP, RSCREENDISPLAY_CREATECONTEXTL, "EFGcNotSet" ); + } __ASSERT_DEBUG(iGc==NULL,FormPanic(EFGcNotSet)); User::LeaveIfError(iGd->CreateBitmapContext(iGc)); if (iWin) diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/tbox/FRMTVIEW.CPP --- a/textrendering/textformatting/tbox/FRMTVIEW.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/tbox/FRMTVIEW.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -20,6 +20,11 @@ #include "FRMTVIEW.H" #include "FRMCONST.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "FRMTVIEWTraces.h" +#endif + #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include "FRMCONST_INTERNAL.H" #include "FRMCONST_PARTNER.H" @@ -265,6 +270,10 @@ void TCursor::DrawLineCursor(TInt aHeight) { + if (!iLineCursorBitmap) + { + OstTrace0( TRACE_FATAL, DUP1_TCURSOR_DRAWLINECURSOR, "EFLineCursorBitmapNotSet" ); + } __ASSERT_ALWAYS(iLineCursorBitmap,FormPanic(EFLineCursorBitmapNotSet)); TRect cursorMargin=iDisplay.LineCursorMargin(); TRect bitmapRect; @@ -407,6 +416,10 @@ iHorizontalScroll(EFNoPreviousHorizontalScroll), iContextIsNavigation(ETrue) { + if (EFMemoryOK == EFRecovering) + { + OstTrace0( TRACE_DUMP, CTEXTVIEW_CTEXTVIEW, "EFSystemConstantsChanged" ); + } __ASSERT_DEBUG(EFMemoryOK != EFRecovering,FormPanic(EFSystemConstantsChanged)); } @@ -414,6 +427,10 @@ MGraphicsDeviceMap *aDeviceMap,RWindow *aWin,RWindowGroup *aGroupWin, RWsSession *aSession) { + if (!aLayout) + { + OstTrace0( TRACE_FATAL, CTEXTVIEW_CONSTRUCTL, "EFInvalidLayout" ); + } __ASSERT_ALWAYS(aLayout,FormPanic(EFInvalidLayout)); iHorizontalScrollJump=EFDefaultHorizontalScrollJump; iWrap = CIdle::NewL(EFBackgroundFormattingPriority); @@ -438,6 +455,10 @@ not be NULL or a panic occurs. */ EXPORT_C void CTextView::SetLayout(CTextLayout *aLayout) { + if (!aLayout) + { + OstTrace0( TRACE_FATAL, CTEXTVIEW_SETLAYOUT, "EFInvalidLayout" ); + } __ASSERT_ALWAYS(aLayout,FormPanic(EFInvalidLayout)); iLayout = aLayout; iCursorPos.SetLayout(aLayout); @@ -754,7 +775,11 @@ TRAPD(err,iLayout->GetFontHeightAndAscentL(aFontSpec,fontHeight,fontAscent)); if (!err) iCursor.SetAscentAndDescent(fontAscent,fontHeight - fontAscent); - User::LeaveIfError(err); + if (err) + { + OstTrace1( TRACE_FATAL, CTEXTVIEW_MATCHCURSORHEIGHTL, "Leave code=%d", err ); + User::Leave(err); + } } /** Gets the current selection. @@ -782,6 +807,10 @@ { if (iCursorPos.IsPictureFrame()) { + if (!iPictureFrame) + { + OstTrace0( TRACE_DUMP, CTEXTVIEW_ISPICTUREFRAMESELECTED, "EFNoPictureFrame" ); + } __ASSERT_DEBUG(iPictureFrame,FormPanic(EFNoPictureFrame)); aPictureFrameRect=iPictureFrame->Rect(); aDocPos=Selection().LowerPos(); @@ -935,7 +964,15 @@ return selection; } + if (selection.iCursorPos >= anchor) + { + OstTrace0( TRACE_DUMP, CTEXTVIEW_GETFORWARDDELETEPOSITIONL, "selection.iCursorPos >= anchor" ); + } __ASSERT_DEBUG(selection.iCursorPos < anchor, User::Invariant()); + if (selection.Length()) + { + OstTrace0( TRACE_DUMP, DUP1_CTEXTVIEW_GETFORWARDDELETEPOSITIONL, "selection.Length()!=0" ); + } __ASSERT_DEBUG(selection.Length() == 0, User::Invariant()); // Now we have found the next formatted position. However, this @@ -948,6 +985,10 @@ TBool ignoreNextSpacingCharacter = EFalse; for (TInt i = selection.iCursorPos; i != anchor; ++i) { + if (i >= anchor) + { + OstTrace0( TRACE_DUMP, DUP2_CTEXTVIEW_GETFORWARDDELETEPOSITIONL, "i >= anchor" ); + } __ASSERT_DEBUG(i < anchor, User::Invariant()); TChar c = sourceCache.GetUtf32(i); if ( IsGraphicalSpacing(c) ) @@ -1014,8 +1055,15 @@ selection.iAnchorPos = 0; return selection; } - + if (anchor >= selection.iCursorPos) + { + OstTrace0( TRACE_DUMP, CTEXTVIEW_GETBACKWARDDELETEPOSITIONL, "anchor >= selection.iCursorPos" ); + } __ASSERT_DEBUG(anchor < selection.iCursorPos, User::Invariant()); + if (selection.Length() != 0) + { + OstTrace0( TRACE_DUMP, DUP1_CTEXTVIEW_GETBACKWARDDELETEPOSITIONL, "selection.Length() != 0" ); + } __ASSERT_DEBUG(selection.Length() == 0, User::Invariant()); // If this cluster is a ligature, it needs to be split. @@ -1088,6 +1136,10 @@ background formatting. Enters OOM before leaving. */ void CTextView::DisplayNewLinesL(TInt aFrom,TInt aTo) { + if (iNoMemory) + { + OstTrace0( TRACE_DUMP, CTEXTVIEW_DISPLAYNEWLINESL, "EFNoMemory" ); + } __ASSERT_DEBUG(!iNoMemory,FormPanic(EFNoMemory)); if (aTo>iGood) { @@ -1419,13 +1471,31 @@ TBool formatting = IsFormatting(); TBool moreToDo = ETrue; + if (iCursorPos.IsSelection()) + { + OstTrace0( TRACE_DUMP, CTEXTVIEW_HANDLECHAREDITL, "EFSelectionCannotCharEdit" ); + } __ASSERT_DEBUG(!iCursorPos.IsSelection(),FormPanic(EFSelectionCannotCharEdit)); + if (aType>CTextLayout::EFRightDelete) + { + OstTrace0( TRACE_DUMP, DUP1_CTEXTVIEW_HANDLECHAREDITL, "EFBadCharacterEditType" ); + } __ASSERT_DEBUG(aType<=CTextLayout::EFRightDelete,FormPanic(EFBadCharacterEditType)); + if ( !(!aFormatChanged || aType==CTextLayout::EFRightDelete + || aType==CTextLayout::EFLeftDelete) ) + { + OstTrace0( TRACE_DUMP, DUP2_CTEXTVIEW_HANDLECHAREDITL, "EFBadCharacterEditType" ); + } __ASSERT_DEBUG(!aFormatChanged || aType==CTextLayout::EFRightDelete || aType==CTextLayout::EFLeftDelete,FormPanic(EFBadCharacterEditType)); TBool recovered=NoMemoryCheckL(); iCursor.MatchCursorHeightToAdjacentChar(); TPoint dummyPoint; + if ( !(iLayout->PosInBand(iCursorPos.TmDocPos(),dummyPoint) + || !formatting) ) + { + OstTrace0( TRACE_DUMP, DUP3_CTEXTVIEW_HANDLECHAREDITL, "EFBackgroundFormatting" ); + } __ASSERT_DEBUG(iLayout->PosInBand(iCursorPos.TmDocPos(),dummyPoint) || !formatting, FormPanic(EFBackgroundFormatting)); TTmDocPos doc_pos = iCursorPos.TmDocPos(); @@ -1550,7 +1620,15 @@ iDisplay.DeactivateContext(); } iDisplay.SetRects(RScreenDisplay::EFClipViewRect); + if (from>viewChanges.iFormattedFrom && from>0) + { + OstTrace0( TRACE_DUMP, DUP1_CTEXTVIEW_HANDLEBLOCKCHANGEL, "EFScrollError" ); + } __ASSERT_DEBUG(from<=viewChanges.iFormattedFrom || from<=0,FormPanic(EFScrollError)); + if (to=viewChanges.iFormattedTo || to>=iDrawTextLayoutContext.DisplayHeight(),FormPanic(EFScrollError)); if (from>0) DisplayLineRangeL(0,from); @@ -2183,7 +2261,15 @@ TRect rect; TInt height=iDrawTextLayoutContext.DisplayHeight(); + if (aScrollX==0 && aScrollY==0) + { + OstTrace0( TRACE_DUMP, CTEXTVIEW_SCROLLTEXTL, "EFScrollByZero2" ); + } __ASSERT_DEBUG(aScrollX!=0 || aScrollY!=0,FormPanic(EFScrollByZero2)); + if (aFrom!=0 && aScrollX!=0) + { + OstTrace0( TRACE_DUMP, DUP1_CTEXTVIEW_SCROLLTEXTL, "EFScrollError" ); + } __ASSERT_DEBUG(aFrom==0 || aScrollX==0,FormPanic(EFScrollError)); //Can only scroll the whole of the ViewRect Horizontally if (aScrollX==0) rect=iDrawTextLayoutContext.iViewRect; @@ -2237,6 +2323,10 @@ TInt top=rect.iTl.iY; + if (aTo<0 || aTo<=aFrom) + { + OstTrace0( TRACE_DUMP, CTEXTVIEW_SCROLLRECT, "EFScrollError" ); + } __ASSERT_DEBUG(aTo>=0 && aTo>aFrom,FormPanic(EFScrollError)); aFrom-=aScrollY; if (aFrom>0) @@ -2335,7 +2425,6 @@ if (needInverting && !iDrawTextLayoutContext.TextOverrideColor() && (iFlags & EFTextVisible)) { TCursorSelection selection; - __ASSERT_DEBUG(iLayout->__DbgIsFormattingUpToDate(),FormPanic(EFFormatOutOfDate)); iFlags |= EFSelectionVisible; iCursorPos.GetSelection(selection); @@ -2497,6 +2586,10 @@ { if (NoMemoryCheckL()) aDiscardFormat = CTextView::EFViewDontDiscardFullRedraw; + if (aDocPos < 0 || aDocPos > iLayout->DocumentLength()) + { + OstTrace0( TRACE_DUMP, CTEXTVIEW_SETVIEWL, "EFInvalidDocPos" ); + } __ASSERT_ALWAYS(aDocPos >= 0 && aDocPos <= iLayout->DocumentLength(),FormPanic(EFInvalidDocPos)); aYPos -= TopViewRect(); TTmDocPos pos(aDocPos, @@ -2626,6 +2719,10 @@ HandleCharEditL() instead. */ EXPORT_C void CTextView::HandleAdditionalCharactersAtEndL() { + if (IsFormatting()) + { + OstTrace0( TRACE_DUMP, CTEXTVIEW_HANDLEADDITIONALCHARACTERSATENDL, "EFBackgroundFormatting" ); + } __ASSERT_DEBUG(!IsFormatting(),FormPanic(EFBackgroundFormatting)); if (!NoMemoryCheckL()) { @@ -2723,8 +2820,16 @@ { TInt visPos; TInt visLen=iLayout->PosRangeInBand(visPos); - + + if (visLen<0) + { + OstTrace0( TRACE_DUMP, CTEXTVIEW_HIGHLIGHTUSINGEXTENSIONS, "EFNoMemory" ); + } __ASSERT_DEBUG(visLen>=0,FormPanic(EFNoMemory)); // Shouldn't be in OOM here. + if (!SelectionVisible()) + { + OstTrace0( TRACE_DUMP, DUP1_CTEXTVIEW_HIGHLIGHTUSINGEXTENSIONS, "EFSelectionNotVisible" ); + } __ASSERT_DEBUG(SelectionVisible(),FormPanic(EFSelectionNotVisible)); if (!aOptimizedRange.Clip(visPos, visPos + visLen)) @@ -2833,6 +2938,10 @@ */ void CTextView::DrawPictureFrameL(TRect& aClipRect) { + if (!iCursorPos.IsPictureFrame()) + { + OstTrace0( TRACE_DUMP, CTEXTVIEW_DRAWPICTUREFRAMEL, "EFNoPictureFrame" ); + } __ASSERT_DEBUG(iCursorPos.IsPictureFrame(),FormPanic(EFNoPictureFrame)); TCursorSelection selection; iCursorPos.GetSelection(selection); @@ -2858,6 +2967,10 @@ /** Enters the OOM state. */ void CTextView::NoMemoryL(TInt aError) { + if (iNoMemory==EFOutOfMemory) + { + OstTrace0( TRACE_DUMP, CTEXTVIEW_NOMEMORYL, "EFNoMemory" ); + } __ASSERT_DEBUG(iNoMemory!=EFOutOfMemory,FormPanic(EFNoMemory)); iLayout->DiscardFormat(); if (iNoMemory==EFMemoryOK) @@ -2885,6 +2998,10 @@ { TBool recovered=iNoMemory; + if (iNoMemory==EFRecovering) + { + OstTrace0( TRACE_DUMP, CTEXTVIEW_NOMEMORYCHECKL, "EFRecoverNoMemory" ); + } __ASSERT_DEBUG(iNoMemory!=EFRecovering,FormPanic(EFRecoverNoMemory)); if (iNoMemory) RecoverNoMemoryL(); @@ -2895,7 +3012,10 @@ Enters OOM before leaving */ void CTextView::RecoverNoMemoryL() { - + if (iNoMemory!=EFOutOfMemory) + { + OstTrace0( TRACE_DUMP, CTEXTVIEW_RECOVERNOMEMORYL, "EFRecoverNoMemory" ); + } __ASSERT_DEBUG(iNoMemory==EFOutOfMemory,FormPanic(EFRecoverNoMemory)); iNoMemory=EFRecovering; RecreateWindowServerObjectsL(); @@ -2904,6 +3024,10 @@ if (pos.iPos > end.iPos) iCursorPos.SetDocPos(end); ViewL(iCursorPos.TmDocPos(),iGood); + if (iNoMemory!=EFRecovering) + { + OstTrace0( TRACE_DUMP, DUP1_CTEXTVIEW_RECOVERNOMEMORYL, "EFNoMemory" ); + } __ASSERT_DEBUG(iNoMemory==EFRecovering,FormPanic(EFNoMemory)); iNoMemory=EFMemoryOK; iGood=0; @@ -2928,6 +3052,10 @@ cause the view to scroll. Must be a positive value or a panic occurs. */ EXPORT_C void CTextView::SetHorizontalScrollJump(TInt aScrollJump) { + if (aScrollJump<0) + { + OstTrace0( TRACE_DUMP, CTEXTVIEW_SETHORIZONTALSCROLLJUMP, "EFInvalidJumpValue" ); + } __ASSERT_ALWAYS(aScrollJump>=0,FormPanic(EFInvalidJumpValue)); __ASSERT_DEBUG(aScrollJump0,FormPanic(EFInvalidNumberCharsOnPage)); iPageList->AppendL(deltaDocPos); iPrevPageBreak=iDocPos; diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/tbox/LAYEMU.CPP --- a/textrendering/textformatting/tbox/LAYEMU.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/tbox/LAYEMU.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -29,6 +29,11 @@ #include "FRMTLAY_INTERNAL.H" #endif +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "LAYEMUTraces.h" +#endif + const TInt KMaxExtraLines = 10; // maximum number of lines to format after the current and following lines // before using background formatting // during page down/up, the number of lines that should remain visible after @@ -210,7 +215,11 @@ { if(!iReadyToRedraw) return; - + + if (iBeginRedrawCount <= 0) + { + OstTrace0( TRACE_DUMP, CTEXTLAYOUT_ENDREDRAW, "CTextLayout::EndRedraw" ); + } __ASSERT_ALWAYS(iBeginRedrawCount > 0, Panic(EInvalidRedraw)); if (0 == --iBeginRedrawCount) @@ -230,6 +239,10 @@ void CTextLayout::SetExternalDraw(const TRect& aRect) { + if (0 != iBeginRedrawCount) + { + OstTrace0( TRACE_FATAL, DUP1_CTEXTLAYOUT_SETEXTERNALDRAW, "EInvalidRedraw" ); + } __ASSERT_ALWAYS(0 == iBeginRedrawCount, Panic(EInvalidRedraw)); iBeginRedrawCount++; iRedrawRect = aRect; @@ -237,6 +250,10 @@ void CTextLayout::ResetExternalDraw() { + if (1 != iBeginRedrawCount) + { + OstTrace0( TRACE_FATAL, CTEXTLAYOUT_RESETEXTERNALDRAW, "EInvalidRedraw" ); + } __ASSERT_ALWAYS(1 == iBeginRedrawCount, Panic(EInvalidRedraw)); iBeginRedrawCount--; @@ -415,6 +432,10 @@ { if (aFormatMode == CLayoutData::EFWysiwygMode || aFormatMode == CLayoutData::EFPrintPreviewMode) { + if (aFormatDevice == NULL) + { + OstTrace0( TRACE_FATAL, CTEXTLAYOUT_SETFORMATMODE, "EFormatDeviceNotSet" ); + } __ASSERT_ALWAYS(aFormatDevice != NULL,Panic(EFormatDeviceNotSet)); iSource->iFormatDevice = aFormatDevice; } @@ -777,6 +798,10 @@ @return The document position of the first character on the line. */ EXPORT_C TInt CTextLayout::FirstCharOnLine(TInt aLineNo) const { + if (aLineNo <= 0) + { + OstTrace0( TRACE_DUMP, CTEXTLAYOUT_FIRSTCHARONLINE, "EInvalidLineNumber" ); + } __ASSERT_DEBUG(aLineNo > 0,Panic(EInvalidLineNumber)); if (iText->StartChar() == iText->EndChar()) return EFNoCurrentFormat; @@ -1150,7 +1175,15 @@ if (iText->LayoutHeight() == 0) return TRect(0,0,0,0); + if (!PosIsFormatted(aDocPos1)) + { + OstTrace0( TRACE_FATAL, CTEXTLAYOUT_GETLINERECTL, "ECharacterNotFormatted" ); + } __ASSERT_ALWAYS(PosIsFormatted(aDocPos1),Panic(ECharacterNotFormatted)); + if (!PosIsFormatted(aDocPos2)) + { + OstTrace0( TRACE_DUMP, DUP1_CTEXTLAYOUT_GETLINERECTL, "ECharacterNotFormatted" ); + } __ASSERT_DEBUG(PosIsFormatted(aDocPos2),Panic(ECharacterNotFormatted)); TTmDocPosSpec docSpec(aDocPos1, TTmDocPosSpec::ELeading); @@ -1164,6 +1197,10 @@ // Getthe Line rectangle GetLineRect(point.iY,rect); + if (rect.iTl.iY > point.iY || rect.iBr.iY < point.iY) + { + OstTrace0( TRACE_DUMP, DUP2_CTEXTLAYOUT_GETLINERECTL, "EPixelNotInFormattedLine" ); + } __ASSERT_DEBUG(rect.iTl.iY <= point.iY && rect.iBr.iY >= point.iY,Panic(EPixelNotInFormattedLine)); // Finding the leading edge of aDocPos2 @@ -1575,6 +1612,10 @@ */ EXPORT_C void CTextLayout::ExtendFormattingToCoverPosL(TInt aDocPos) { + if (0 > aDocPos || aDocPos > DocumentLength()) + { + OstTrace0( TRACE_DUMP, CTEXTLAYOUT_EXTENDFORMATTINGTOCOVERPOSL, "EInvalidDocPos" ); + } __ASSERT_DEBUG(0 <= aDocPos && aDocPos <= DocumentLength(), Panic(EInvalidDocPos)); TTmFormatParam param; @@ -1599,6 +1640,10 @@ { iText->ExtendFormattingDownwardsL(param); } + if ((aDocPos < iText->StartChar()) || (aDocPos > iText->EndChar())) + { + OstTrace0( TRACE_DUMP, DUP1_CTEXTLAYOUT_EXTENDFORMATTINGTOCOVERPOSL, "ECharacterNotFormatted" ); + } __ASSERT_DEBUG((aDocPos >= iText->StartChar()) && (aDocPos <= iText->EndChar()), Panic(ECharacterNotFormatted)); } @@ -1625,8 +1670,20 @@ void CTextLayout::FormatCharRangeL(TInt aStartDocPos,TInt aEndDocPos,TInt aPixelOffset) { + if (aStartDocPos < 0 && aStartDocPos > DocumentLength()) + { + OstTrace0( TRACE_DUMP, CTEXTLAYOUT_FORMATCHARRANGEL, "EInvalidDocPos" ); + } __ASSERT_DEBUG(aStartDocPos >= 0 && aStartDocPos <= DocumentLength(),Panic(EInvalidDocPos)); + if (aEndDocPos < 0 || aEndDocPos > DocumentLength()) + { + OstTrace0( TRACE_DUMP, DUP1_CTEXTLAYOUT_FORMATCHARRANGEL, "EInvalidDocPos" ); + } __ASSERT_DEBUG(aEndDocPos >= 0 && aEndDocPos <= DocumentLength(),Panic(EInvalidDocPos)); + if (aStartDocPos > aEndDocPos) + { + OstTrace0( TRACE_DUMP, DUP2_CTEXTLAYOUT_FORMATCHARRANGEL, "ENoCharRangeToFormat" ); + } __ASSERT_DEBUG(aStartDocPos <= aEndDocPos,Panic(ENoCharRangeToFormat)); TTmFormatParam param; @@ -1677,8 +1734,16 @@ TTmLineInfo info; TTmDocPos pos(iUnformattedStart, ETrue); TBool isFormatted = iText->DocPosToLine(pos,info); + if (!isFormatted) + { + OstTrace0( TRACE_DUMP, CTEXTLAYOUT_FORMATNEXTLINEL, "EPosNotFormatted" ); + } __ASSERT_DEBUG(isFormatted, Panic(EPosNotFormatted)); isFormatted = iText->ParNumberToLine(info.iParNumber,KMaxTInt,info); + if (!isFormatted) + { + OstTrace0( TRACE_DUMP, DUP1_CTEXTLAYOUT_FORMATNEXTLINEL, "EPosNotFormatted" ); + } __ASSERT_DEBUG(isFormatted, Panic(EPosNotFormatted)); aBottomPixel = info.iOuterRect.iBr.iY - iBandTop; } @@ -1866,7 +1931,10 @@ if (iText->YPosToLine(iBandTop,info)) top_line_number = info.iLineNumber; else + { + OstTrace0( TRACE_DUMP, DUP1_CTEXTLAYOUT_SCROLLLINESL, "EPosNotFormatted" ); User::Leave(EPosNotFormatted); + } partial_line = iBandTop > info.iOuterRect.iTl.iY; } @@ -1896,7 +1964,10 @@ if (lines_scrolled) { if (!iText->LineNumberToLine(desired_top_line_number,info)) - User::Leave(EPosNotFormatted); + { + OstTrace0( TRACE_DUMP, CTEXTLAYOUT_SCROLLLINESL, "EPosNotFormatted" ); + User::Leave(EPosNotFormatted); + } // if the line to be scrolled to is taller than the screen, we want // to make sure that the baseline is not scrolled off the screen. if (visible_height < info.iBaseline - info.iOuterRect.iTl.iY) @@ -1913,7 +1984,10 @@ // If we are restricting scroll to the tops of lines, then lines at // bottom are irrelevant, so all we do is lose the top line. if (!iText->YPosToLine(iBandTop, info)) - User::Leave(EPosNotFormatted); + { + OstTrace0( TRACE_DUMP, DUP2_CTEXTLAYOUT_SCROLLLINESL, "EPosNotFormatted" ); + User::Leave(EPosNotFormatted); + } return ScrollL(-info.iOuterRect.Height(), aScrollBlankSpace); } @@ -1936,7 +2010,10 @@ if (iText->YPosToLine(band_bottom - 1,info)) bottom_line_number = info.iLineNumber; else - User::Leave(EPosNotFormatted); + { + OstTrace0( TRACE_DUMP, DUP3_CTEXTLAYOUT_SCROLLLINESL, "EPosNotFormatted" ); + User::Leave(EPosNotFormatted); + } partial_line = band_bottom < info.iOuterRect.iBr.iY; // Find the line number of the desired last visible line. @@ -1962,7 +2039,10 @@ if (lines_scrolled) { if (!iText->LineNumberToLine(desired_bottom_line_number,info)) - User::Leave(EPosNotFormatted); + { + OstTrace0( TRACE_DUMP, DUP4_CTEXTLAYOUT_SCROLLLINESL, "EPosNotFormattedL" ); + User::Leave(EPosNotFormatted); + } return ScrollL(band_bottom - info.iOuterRect.iBr.iY,aScrollBlankSpace); } else @@ -2158,8 +2238,16 @@ visible_height - 1 : SuggestCursorPos(aYCursorPos); + if (-visible_height > aPixelsScrolled) + { + OstTrace0( TRACE_DUMP, CTEXTLAYOUT_PAGEDOWNL, "EPageScrollError" ); + } __ASSERT_DEBUG(-visible_height <= aPixelsScrolled, Panic(EPageScrollError)); + if (0 > aYCursorPos || aYCursorPos > visible_height) + { + OstTrace0( TRACE_DUMP, DUP1_CTEXTLAYOUT_PAGEDOWNL, "EPageScrollError" ); + } __ASSERT_DEBUG(0 <= aYCursorPos && aYCursorPos <= visible_height, Panic(EPageScrollError)); } @@ -2192,9 +2280,25 @@ EXPORT_C TBool CTextLayout::HandleCharEditL(TUint aType,TInt& aCursorPos,TInt& aGood,TInt& aFormatBottom, TInt& aFormatTop,TInt& aScroll,TBool aFormatFromStartOfPar) { + if (iSource->iFormatMode == CLayoutData::EFPrintPreviewMode) + { + OstTrace0( TRACE_FATAL, DUP2_CTEXTLAYOUT_HANDLECHAREDITL, "EPrintPreviewModeError" ); + } __ASSERT_ALWAYS(iSource->iFormatMode != CLayoutData::EFPrintPreviewMode,Panic(EPrintPreviewModeError)); + if (aType > EFRightDelete) + { + OstTrace0( TRACE_FATAL, CTEXTLAYOUT_HANDLECHAREDITL, "EBadCharacterEditType" ); + } __ASSERT_ALWAYS(aType <= EFRightDelete,Panic(EBadCharacterEditType)); + if (!(!aFormatFromStartOfPar || aType == EFRightDelete || aType == EFLeftDelete)) + { + OstTrace0( TRACE_FATAL, DUP1_CTEXTLAYOUT_HANDLECHAREDITL, "EBadCharacterEditType" ); + } __ASSERT_ALWAYS(!aFormatFromStartOfPar || aType == EFRightDelete || aType == EFLeftDelete,Panic(EBadCharacterEditType)); + if (aCursorPos < iText->StartChar() || aCursorPos >= iText->EndChar()) + { + OstTrace0( TRACE_FATAL, DUP3_CTEXTLAYOUT_HANDLECHAREDITL, "ECharacterNotFormatted" ); + } __ASSERT_ALWAYS(aCursorPos >= iText->StartChar() && aCursorPos < iText->EndChar(),Panic(ECharacterNotFormatted)); // Mark the entire paragraph invalid if background formatting is taking place. @@ -2358,6 +2462,10 @@ EXPORT_C void CTextLayout::HandleBlockChangeL(TCursorSelection aSelection,TInt aOldLength, TViewRectChanges& aChanges,TBool aFormatFromStartOfPar) { + if (iSource->iFormatMode == CLayoutData::EFPrintPreviewMode) + { + OstTrace0( TRACE_FATAL, CTEXTLAYOUT_HANDLEBLOCKCHANGEL, "EPrintPreviewModeError" ); + } __ASSERT_ALWAYS(iSource->iFormatMode != CLayoutData::EFPrintPreviewMode,Panic(EPrintPreviewModeError)); // Do nothing if the selection is outside the formatted range. @@ -2484,6 +2592,11 @@ { int excess = BandHeight() - FormattedHeightInPixels(); int space_before = 0; + + if (IsFormattingBand()) + { + OstTrace0( TRACE_FATAL, CTEXTLAYOUT_ADJUSTVERTICALALIGNMENT, "EMustFormatAllText" ); + } __ASSERT_ALWAYS(!IsFormattingBand(),Panic(EMustFormatAllText)); TTmLineInfo info; @@ -2724,6 +2837,10 @@ // Repeat draw, for double border. if (aBorder.iBorder[border].iLineStyle==TParaBorder::EDouble) // Now have only got solid border, drawn as rect. { + if (drawAsLine) + { + OstTrace0( TRACE_DUMP, CTEXTLAYOUT_DRAWBORDERS, "EDrawingBorderError" ); + } __ASSERT_DEBUG(!drawAsLine,Panic(EDrawingBorderError)); (*ptrStartWidth)-=directionOut*widthInPixels[border]; (*ptrEndWidth)-=directionOut*widthInPixels[border]; @@ -4106,12 +4223,20 @@ TInt CTextLayout::ScrollDocPosIntoViewL(const TTmDocPos& aDocPos) { + if (aDocPos.iPos > iText->Source()->DocumentLength()) + { + OstTrace0( TRACE_DUMP, CTEXTLAYOUT_SCROLLDOCPOSINTOVIEWL, "EInvalidDocPos" ); + } __ASSERT_DEBUG(aDocPos.iPos <= iText->Source()->DocumentLength(), Panic(EInvalidDocPos)); TTmLineInfo info; ExtendFormattingToCoverPosL(aDocPos.iPos); if (!iText->DocPosToLine(aDocPos,info)) { + if (iText->Source()->DocumentLength() != 0) + { + OstTrace0( TRACE_DUMP, DUP1_CTEXTLAYOUT_SCROLLDOCPOSINTOVIEWL, "ECharacterNotFormatted" ); + } __ASSERT_DEBUG(iText->Source()->DocumentLength() == 0, Panic(ECharacterNotFormatted)); return ScrollL(iBandTop, EFDisallowScrollingBlankSpace); diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/test/group/TBidiCursorPos.mmp --- a/textrendering/textformatting/test/group/TBidiCursorPos.mmp Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/test/group/TBidiCursorPos.mmp Tue Jul 06 16:23:19 2010 +0300 @@ -19,9 +19,13 @@ target tbidicursorpos.exe targettype exe + +UID 0x100039CE 0xE0008383 +VENDORID 0x70000001 + OS_LAYER_SYSTEMINCLUDE_SYMBIAN userinclude ../../tagma -userinclude ../../inc +userinclude ../../inc ../traces sourcepath ../src @@ -45,6 +49,4 @@ epocstacksize 0x10000 -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file +SMPSAFE diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/test/group/TGraphemeIterator.mmp --- a/textrendering/textformatting/test/group/TGraphemeIterator.mmp Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/test/group/TGraphemeIterator.mmp Tue Jul 06 16:23:19 2010 +0300 @@ -18,12 +18,16 @@ target tgraphemeiterator.exe targettype exe + +UID 0x100039CE 0xE0008383 +VENDORID 0x70000001 + exportunfrozen OS_LAYER_SYSTEMINCLUDE_SYMBIAN userinclude ../../tagma userinclude ../../inc -userinclude ../src +userinclude ../src ../traces sourcepath ../src source TGraphemeIterator.cpp @@ -42,6 +46,4 @@ library ws32.lib library euser.lib gdi.lib fntstr.lib estor.lib etext.lib linebreak.lib fbscli.lib tagma.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file +SMPSAFE diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/test/group/TInterpreter.mmp --- a/textrendering/textformatting/test/group/TInterpreter.mmp Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/test/group/TInterpreter.mmp Tue Jul 06 16:23:19 2010 +0300 @@ -18,12 +18,16 @@ target tinterpreter.exe targettype exe + +UID 0x100039CE 0xE0008383 +VENDORID 0x70000001 + exportunfrozen OS_LAYER_SYSTEMINCLUDE_SYMBIAN userinclude ../src userinclude ../../tagma -userinclude ../../inc +userinclude ../../inc ../traces sourcepath ../src source TInterpreter.cpp @@ -42,6 +46,4 @@ library ws32.lib library euser.lib gdi.lib fntstr.lib estor.lib etext.lib linebreak.lib fbscli.lib tagma.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file +SMPSAFE diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/test/group/TLINEPAG.MMP --- a/textrendering/textformatting/test/group/TLINEPAG.MMP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/test/group/TLINEPAG.MMP Tue Jul 06 16:23:19 2010 +0300 @@ -25,7 +25,10 @@ targettype exe -userinclude ../../inc // your public include directory should be here +UID 0x100039CE 0xE0008383 +VENDORID 0x70000001 + +userinclude ../../inc ../traces // your public include directory should be here OS_LAYER_SYSTEMINCLUDE_SYMBIAN sourcepath ../src @@ -36,7 +39,4 @@ library euser.lib efsrv.lib gdi.lib ws32.lib bafl.lib cone.lib - -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file +SMPSAFE diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/test/group/TTagmaImp.mmp --- a/textrendering/textformatting/test/group/TTagmaImp.mmp Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/test/group/TTagmaImp.mmp Tue Jul 06 16:23:19 2010 +0300 @@ -21,12 +21,15 @@ targettype EXE +UID 0x100039CE 0xE0008383 +VENDORID 0x70000001 + exportunfrozen MW_LAYER_SYSTEMINCLUDE_SYMBIAN userinclude ../../tagma userinclude ../../inc -userinclude ../src +userinclude ../src ../traces sourcepath ../src source TTagmaImp.cpp TGraphicsContext.cpp @@ -43,6 +46,4 @@ library estor.lib ws32.lib tagma.lib library linebreak.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file +SMPSAFE diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/test/group/TTextView2.mmp --- a/textrendering/textformatting/test/group/TTextView2.mmp Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/test/group/TTextView2.mmp Tue Jul 06 16:23:19 2010 +0300 @@ -20,12 +20,15 @@ targettype exe +UID 0x100039CE 0xE0008383 +VENDORID 0x70000001 + capability all -TCB MW_LAYER_SYSTEMINCLUDE_SYMBIAN userinclude ../../tagma -userinclude ../../inc +userinclude ../../inc ../traces sourcepath ../src source TTextView2.cpp @@ -41,6 +44,4 @@ library euser.lib gdi.lib form.lib etext.lib ws32.lib fbscli.lib library bitgdi.lib tagma.lib fntstr.lib linebreak.lib tbitmapdoc.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file +SMPSAFE diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/test/src/TForm18030/TForm18030.mmp --- a/textrendering/textformatting/test/src/TForm18030/TForm18030.mmp Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/textformatting/test/src/TForm18030/TForm18030.mmp Tue Jul 06 16:23:19 2010 +0300 @@ -32,15 +32,15 @@ START RESOURCE TForm18030.rss HEADER -TARGETPATH \resource\apps +TARGETPATH /resource/apps end START RESOURCE TForm18030_reg.rss -TARGETPATH \private\10003a3f\apps +TARGETPATH /private/10003a3f/apps END START BITMAP tform18030.mbm -TARGETPATH \resource\apps +TARGETPATH /resource/apps SOURCE c8,1 icon24.BMP icon2M.BMP icon32.BMP icon3M.BMP icon48.BMP icon4M.BMP END diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/test/traces/OstTraceDefinitions.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/traces/OstTraceDefinitions.h Tue Jul 06 16:23:19 2010 +0300 @@ -0,0 +1,24 @@ +/* +* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __OSTTRACEDEFINITIONS_H__ +#define __OSTTRACEDEFINITIONS_H__ +// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler +// REMOVE BEFORE CHECK-IN TO VERSION CONTROL +// #define OST_TRACE_COMPILER_IN_USE +#include +#endif diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/test/traces/fixed_id.definitions --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/traces/fixed_id.definitions Tue Jul 06 16:23:19 2010 +0300 @@ -0,0 +1,157 @@ +/* +* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt. +[GROUP]TRACE_DUMP=0x89 +[GROUP]TRACE_FATAL=0x81 +[TRACE]TRACE_DUMP[0x89]_CTMLINE_APPENDCHUNKL=0x175 +[TRACE]TRACE_DUMP[0x89]_CTMLINE_WRITEINLINETEXTL=0x176 +[TRACE]TRACE_DUMP[0x89]_CTMTEXTIMP_GETPARAGRAPHFORMATL=0x169 +[TRACE]TRACE_DUMP[0x89]_CTMTEXTIMP_GETTEXT=0x168 +[TRACE]TRACE_DUMP[0x89]_CTMTEXTIMP_INSERTL=0x167 +[TRACE]TRACE_DUMP[0x89]_DUP1_CTMLINE_WRITEINLINETEXTL=0x177 +[TRACE]TRACE_DUMP[0x89]_DUP1_RRUNARRAY_FINDRUNNONSTRICT=0x16c +[TRACE]TRACE_DUMP[0x89]_DUP1_RRUNARRAY_INSERT=0x16f +[TRACE]TRACE_DUMP[0x89]_DUP1_RRUNARRAY_SET=0x172 +[TRACE]TRACE_DUMP[0x89]_DUP1_RTMDRAWINGINTERPRETER_GETNEXTADJUSTEDHIGHLIGHTCLIPRECT=0x163 +[TRACE]TRACE_DUMP[0x89]_DUP1_RTMGRAPHEMEEDGEITERATOR_NEXT=0x15e +[TRACE]TRACE_DUMP[0x89]_DUP1_RTMGRAPHEMEINTEXTCHUNKITERATOR_BEGIN=0x157 +[TRACE]TRACE_DUMP[0x89]_DUP1_RTMGRAPHEMEINTEXTCHUNKITERATOR_NEXT=0x159 +[TRACE]TRACE_DUMP[0x89]_DUP1_TTMBYTECODEFINDER_FINDBYTECODE=0x165 +[TRACE]TRACE_DUMP[0x89]_DUP2_RRUNARRAY_INSERT=0x170 +[TRACE]TRACE_DUMP[0x89]_DUP2_RTMGRAPHEMEINTEXTCHUNKITERATOR_NEXT=0x15a +[TRACE]TRACE_DUMP[0x89]_RRUNARRAY_DELETE=0x173 +[TRACE]TRACE_DUMP[0x89]_RRUNARRAY_FINDRUN=0x16a +[TRACE]TRACE_DUMP[0x89]_RRUNARRAY_FINDRUNNONSTRICT=0x16b +[TRACE]TRACE_DUMP[0x89]_RRUNARRAY_INSERT=0x16e +[TRACE]TRACE_DUMP[0x89]_RRUNARRAY_RUNANDSTARTPOS=0x16d +[TRACE]TRACE_DUMP[0x89]_RRUNARRAY_SET=0x171 +[TRACE]TRACE_DUMP[0x89]_RTMDRAWINGINTERPRETER_GETADJUSTEDHIGHLIGHTCLIPREGION=0x160 +[TRACE]TRACE_DUMP[0x89]_RTMDRAWINGINTERPRETER_GETFIRSTADJUSTEDHIGHLIGHTCLIPRECT=0x161 +[TRACE]TRACE_DUMP[0x89]_RTMDRAWINGINTERPRETER_GETNEXTADJUSTEDHIGHLIGHTCLIPRECT=0x162 +[TRACE]TRACE_DUMP[0x89]_RTMGENERALINTERPRETER_GETDISPLAYEDTEXTL=0x15f +[TRACE]TRACE_DUMP[0x89]_RTMGRAPHEMEEDGEITERATOR_NEXT=0x15d +[TRACE]TRACE_DUMP[0x89]_RTMGRAPHEMEINTEXTCHUNKITERATORNICE_FINDEDGE=0x15c +[TRACE]TRACE_DUMP[0x89]_RTMGRAPHEMEINTEXTCHUNKITERATORNICE_NEXT=0x15b +[TRACE]TRACE_DUMP[0x89]_RTMGRAPHEMEINTEXTCHUNKITERATOR_NEXT=0x158 +[TRACE]TRACE_DUMP[0x89]_RTMTEXTCACHE_GETDISPLAYEDTEXT=0x156 +[TRACE]TRACE_DUMP[0x89]_TTMBYTECODEFINDER_FINDBYTECODE=0x164 +[TRACE]TRACE_DUMP[0x89]_TTMBYTECODEFINDER_FINDBYTECODEATEND=0x166 +[TRACE]TRACE_DUMP[0x89]_TTMCHUNK_SETL=0x174 +[TRACE]TRACE_FATAL[0x81]_CTMBUFFERBASE_TRUNCATE=0x53 +[TRACE]TRACE_FATAL[0x81]_CTMTEXTLAYOUT_GETDISPLAYEDTEXTL=0x52 +[TRACE]TRACE_FATAL[0x81]_DUP1_TTMBYTECODEFINDER_FINDBYTECODEATEND=0x50 +[TRACE]TRACE_FATAL[0x81]_DUP1_TTMINTERPRETER_DOCPOSTOLINE=0x48 +[TRACE]TRACE_FATAL[0x81]_DUP1_TTMINTERPRETER_HORIZONTALEXTREMES=0x4e +[TRACE]TRACE_FATAL[0x81]_DUP1__APPENDTEXTTOBUFFER=0x43 +[TRACE]TRACE_FATAL[0x81]_DUP2_TTMBYTECODEFINDER_FINDBYTECODEATEND=0x51 +[TRACE]TRACE_FATAL[0x81]_DUP3_TTMBYTECODEFINDER_FINDBYTECODE=0x4f +[TRACE]TRACE_FATAL[0x81]_RTMGENERALINTERPRETER_RTMGENERALINTERPRETER=0x44 +[TRACE]TRACE_FATAL[0x81]_TTMHIGHLIGHTSOURCE_TTMHIGHLIGHTSOURCE=0x54 +[TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_DOCPOSTOLINE=0x47 +[TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_HORIZONTALEXTREMES=0x4d +[TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_LINENUMBERTOLINE=0x49 +[TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_LINES=0x45 +[TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_PARAGRAPHS=0x46 +[TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_PARNUMBERTOLINE=0x4a +[TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_WIDTHOFWIDESTLINE=0x4c +[TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_YPOSTOLINE=0x4b +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_DRAWBORDERS=0x153 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_ENDREDRAW=0x141 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_EXTENDFORMATTINGTOCOVERPOSL=0x145 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_FIRSTCHARONLINE=0x142 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_FORMATCHARRANGEL=0x147 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_FORMATNEXTLINEL=0x14a +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_PAGEDOWNL=0x151 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_SCROLLDOCPOSINTOVIEWL=0x154 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_SCROLLLINESL=0x14d +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTMLINE_APPENDCHUNKL=0x13c +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTMLINE_WRITEINLINETEXTL=0x13d +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTMTEXTIMP_GETPARAGRAPHFORMATL=0x130 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTMTEXTIMP_GETTEXT=0x12f +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTMTEXTIMP_INSERTL=0x12e +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTLAYOUT_EXTENDFORMATTINGTOCOVERPOSL=0x146 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTLAYOUT_FORMATCHARRANGEL=0x148 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTLAYOUT_FORMATNEXTLINEL=0x14b +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTLAYOUT_GETLINERECTL=0x143 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTLAYOUT_PAGEDOWNL=0x152 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTLAYOUT_SCROLLDOCPOSINTOVIEWL=0x155 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTLAYOUT_SCROLLLINESL=0x14c +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTMLINE_WRITEINLINETEXTL=0x13e +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_RRUNARRAY_FINDRUNNONSTRICT=0x133 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_RRUNARRAY_INSERT=0x136 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_RRUNARRAY_SET=0x139 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_RTMDRAWINGINTERPRETER_GETNEXTADJUSTEDHIGHLIGHTCLIPRECT=0x12a +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_RTMGRAPHEMEEDGEITERATOR_NEXT=0x125 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_RTMGRAPHEMEINTEXTCHUNKITERATOR_BEGIN=0x11e +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_RTMGRAPHEMEINTEXTCHUNKITERATOR_NEXT=0x120 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_TTMBYTECODEFINDER_FINDBYTECODE=0x12c +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CTEXTLAYOUT_FORMATCHARRANGEL=0x149 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CTEXTLAYOUT_GETLINERECTL=0x144 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CTEXTLAYOUT_SCROLLLINESL=0x14e +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_RRUNARRAY_INSERT=0x137 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_RTMGRAPHEMEINTEXTCHUNKITERATOR_NEXT=0x121 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP3_CTEXTLAYOUT_SCROLLLINESL=0x14f +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP4_CTEXTLAYOUT_SCROLLLINESL=0x150 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RRUNARRAY_DELETE=0x13a +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RRUNARRAY_FINDRUN=0x131 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RRUNARRAY_FINDRUNNONSTRICT=0x132 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RRUNARRAY_INSERT=0x135 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RRUNARRAY_RUNANDSTARTPOS=0x134 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RRUNARRAY_SET=0x138 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RSCREENDISPLAY_CREATECONTEXTL=0x140 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMDRAWINGINTERPRETER_GETADJUSTEDHIGHLIGHTCLIPREGION=0x127 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMDRAWINGINTERPRETER_GETFIRSTADJUSTEDHIGHLIGHTCLIPRECT=0x128 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMDRAWINGINTERPRETER_GETNEXTADJUSTEDHIGHLIGHTCLIPRECT=0x129 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMGENERALINTERPRETER_GETDISPLAYEDTEXTL=0x126 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMGRAPHEMEEDGEITERATOR_NEXT=0x124 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMGRAPHEMEINTEXTCHUNKITERATORNICE_FINDEDGE=0x123 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMGRAPHEMEINTEXTCHUNKITERATORNICE_NEXT=0x122 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMGRAPHEMEINTEXTCHUNKITERATOR_NEXT=0x11f +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMTEXTCACHE_GETDISPLAYEDTEXT=0x11d +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TLINEPAGINATOR_INSERTPAGEBREAKL=0x13f +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TTMBYTECODEFINDER_FINDBYTECODE=0x12b +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TTMBYTECODEFINDER_FINDBYTECODEATEND=0x12d +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TTMCHUNK_SETL=0x13b +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTLAYOUT_ADJUSTVERTICALALIGNMENT=0x42 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTLAYOUT_GETLINERECTL=0x3c +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTLAYOUT_HANDLEBLOCKCHANGEL=0x41 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTLAYOUT_HANDLECHAREDITL=0x3e +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTLAYOUT_RESETEXTERNALDRAW=0x3a +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTLAYOUT_SETFORMATMODE=0x3b +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTMBUFFERBASE_TRUNCATE=0x37 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTMTEXTLAYOUT_GETDISPLAYEDTEXTL=0x36 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CTEXTLAYOUT_HANDLECHAREDITL=0x3f +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CTEXTLAYOUT_SETEXTERNALDRAW=0x39 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_TTMBYTECODEFINDER_FINDBYTECODEATEND=0x34 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_TTMINTERPRETER_DOCPOSTOLINE=0x2c +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_TTMINTERPRETER_HORIZONTALEXTREMES=0x32 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1__APPENDTEXTTOBUFFER=0x27 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CTEXTLAYOUT_HANDLECHAREDITL=0x3d +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_TTMBYTECODEFINDER_FINDBYTECODEATEND=0x35 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP3_CTEXTLAYOUT_HANDLECHAREDITL=0x40 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP3_TTMBYTECODEFINDER_FINDBYTECODE=0x33 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_RTMGENERALINTERPRETER_RTMGENERALINTERPRETER=0x28 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMHIGHLIGHTSOURCE_TTMHIGHLIGHTSOURCE=0x38 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_DOCPOSTOLINE=0x2b +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_HORIZONTALEXTREMES=0x31 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_LINENUMBERTOLINE=0x2d +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_LINES=0x29 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_PARAGRAPHS=0x2a +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_PARNUMBERTOLINE=0x2e +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_WIDTHOFWIDESTLINE=0x30 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_YPOSTOLINE=0x2f diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/traces/OstTraceDefinitions.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/traces/OstTraceDefinitions.h Tue Jul 06 16:23:19 2010 +0300 @@ -0,0 +1,24 @@ +/* +* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __OSTTRACEDEFINITIONS_H__ +#define __OSTTRACEDEFINITIONS_H__ +// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler +// REMOVE BEFORE CHECK-IN TO VERSION CONTROL +// #define OST_TRACE_COMPILER_IN_USE +#include +#endif diff -r 6be019398652 -r 601ab138ba0b textrendering/textformatting/traces/fixed_id.definitions --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/traces/fixed_id.definitions Tue Jul 06 16:23:19 2010 +0300 @@ -0,0 +1,223 @@ +/* +* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt. +[GROUP]TRACE_DUMP=0x89 +[GROUP]TRACE_FATAL=0x81 +[TRACE]TRACE_DUMP[0x89]_CTMLINE_APPENDCHUNKL=0xf1 +[TRACE]TRACE_DUMP[0x89]_CTMLINE_WRITEINLINETEXTL=0xf2 +[TRACE]TRACE_DUMP[0x89]_CTMTEXTIMP_GETPARAGRAPHFORMATL=0xe5 +[TRACE]TRACE_DUMP[0x89]_CTMTEXTIMP_GETTEXT=0xe4 +[TRACE]TRACE_DUMP[0x89]_CTMTEXTIMP_INSERTL=0xe3 +[TRACE]TRACE_DUMP[0x89]_DUP1_CTMLINE_WRITEINLINETEXTL=0xf3 +[TRACE]TRACE_DUMP[0x89]_DUP1_RRUNARRAY_FINDRUNNONSTRICT=0xe8 +[TRACE]TRACE_DUMP[0x89]_DUP1_RRUNARRAY_INSERT=0xeb +[TRACE]TRACE_DUMP[0x89]_DUP1_RRUNARRAY_SET=0xee +[TRACE]TRACE_DUMP[0x89]_DUP1_RTMDRAWINGINTERPRETER_GETNEXTADJUSTEDHIGHLIGHTCLIPRECT=0xdf +[TRACE]TRACE_DUMP[0x89]_DUP1_RTMGRAPHEMEEDGEITERATOR_NEXT=0xda +[TRACE]TRACE_DUMP[0x89]_DUP1_RTMGRAPHEMEINTEXTCHUNKITERATOR_BEGIN=0xd3 +[TRACE]TRACE_DUMP[0x89]_DUP1_RTMGRAPHEMEINTEXTCHUNKITERATOR_NEXT=0xd5 +[TRACE]TRACE_DUMP[0x89]_DUP1_TTMBYTECODEFINDER_FINDBYTECODE=0xe1 +[TRACE]TRACE_DUMP[0x89]_DUP2_RRUNARRAY_INSERT=0xec +[TRACE]TRACE_DUMP[0x89]_DUP2_RTMGRAPHEMEINTEXTCHUNKITERATOR_NEXT=0xd6 +[TRACE]TRACE_DUMP[0x89]_RRUNARRAY_DELETE=0xef +[TRACE]TRACE_DUMP[0x89]_RRUNARRAY_FINDRUN=0xe6 +[TRACE]TRACE_DUMP[0x89]_RRUNARRAY_FINDRUNNONSTRICT=0xe7 +[TRACE]TRACE_DUMP[0x89]_RRUNARRAY_INSERT=0xea +[TRACE]TRACE_DUMP[0x89]_RRUNARRAY_RUNANDSTARTPOS=0xe9 +[TRACE]TRACE_DUMP[0x89]_RRUNARRAY_SET=0xed +[TRACE]TRACE_DUMP[0x89]_RTMDRAWINGINTERPRETER_GETADJUSTEDHIGHLIGHTCLIPREGION=0xdc +[TRACE]TRACE_DUMP[0x89]_RTMDRAWINGINTERPRETER_GETFIRSTADJUSTEDHIGHLIGHTCLIPRECT=0xdd +[TRACE]TRACE_DUMP[0x89]_RTMDRAWINGINTERPRETER_GETNEXTADJUSTEDHIGHLIGHTCLIPRECT=0xde +[TRACE]TRACE_DUMP[0x89]_RTMGENERALINTERPRETER_GETDISPLAYEDTEXTL=0xdb +[TRACE]TRACE_DUMP[0x89]_RTMGRAPHEMEEDGEITERATOR_NEXT=0xd9 +[TRACE]TRACE_DUMP[0x89]_RTMGRAPHEMEINTEXTCHUNKITERATORNICE_FINDEDGE=0xd8 +[TRACE]TRACE_DUMP[0x89]_RTMGRAPHEMEINTEXTCHUNKITERATORNICE_NEXT=0xd7 +[TRACE]TRACE_DUMP[0x89]_RTMGRAPHEMEINTEXTCHUNKITERATOR_NEXT=0xd4 +[TRACE]TRACE_DUMP[0x89]_RTMTEXTCACHE_GETDISPLAYEDTEXT=0xd2 +[TRACE]TRACE_DUMP[0x89]_TTMBYTECODEFINDER_FINDBYTECODE=0xe0 +[TRACE]TRACE_DUMP[0x89]_TTMBYTECODEFINDER_FINDBYTECODEATEND=0xe2 +[TRACE]TRACE_DUMP[0x89]_TTMCHUNK_SETL=0xf0 +[TRACE]TRACE_FATAL[0x81]_CTMBUFFERBASE_TRUNCATE=0x61 +[TRACE]TRACE_FATAL[0x81]_CTMTEXTLAYOUT_GETDISPLAYEDTEXTL=0x60 +[TRACE]TRACE_FATAL[0x81]_DUP1_TTMBYTECODEFINDER_FINDBYTECODEATEND=0x5e +[TRACE]TRACE_FATAL[0x81]_DUP1_TTMINTERPRETER_DOCPOSTOLINE=0x56 +[TRACE]TRACE_FATAL[0x81]_DUP1_TTMINTERPRETER_HORIZONTALEXTREMES=0x5c +[TRACE]TRACE_FATAL[0x81]_DUP1__APPENDTEXTTOBUFFER=0x51 +[TRACE]TRACE_FATAL[0x81]_DUP2_TTMBYTECODEFINDER_FINDBYTECODEATEND=0x5f +[TRACE]TRACE_FATAL[0x81]_DUP3_TTMBYTECODEFINDER_FINDBYTECODE=0x5d +[TRACE]TRACE_FATAL[0x81]_RTMGENERALINTERPRETER_RTMGENERALINTERPRETER=0x52 +[TRACE]TRACE_FATAL[0x81]_TTMHIGHLIGHTSOURCE_TTMHIGHLIGHTSOURCE=0x62 +[TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_DOCPOSTOLINE=0x55 +[TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_HORIZONTALEXTREMES=0x5b +[TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_LINENUMBERTOLINE=0x57 +[TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_LINES=0x53 +[TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_PARAGRAPHS=0x54 +[TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_PARNUMBERTOLINE=0x58 +[TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_WIDTHOFWIDESTLINE=0x5a +[TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_YPOSTOLINE=0x59 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_DRAWBORDERS=0xcf +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_ENDREDRAW=0xbd +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_EXTENDFORMATTINGTOCOVERPOSL=0xc1 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_FIRSTCHARONLINE=0xbe +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_FORMATCHARRANGEL=0xc3 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_FORMATNEXTLINEL=0xc6 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_PAGEDOWNL=0xcd +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_SCROLLDOCPOSINTOVIEWL=0xd0 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTLAYOUT_SCROLLLINESL=0xc9 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTPAGEREGIONPRINTER_PRINTBANDL=0x9c +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTPAGINATOR_COPYTEMPPAGELISTL=0x9b +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_CTEXTVIEW=0x9f +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_DISPLAYNEWLINESL=0xa6 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_DOCPOSTOXYPOSL=0x34 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_DODRAWTEXTSUPPORTL=0xbb +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_DRAWL=0x3b +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_DRAWPICTUREFRAMEL=0xb4 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_GETBACKWARDDELETEPOSITIONL=0xa4 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_GETFORWARDDELETEPOSITIONL=0xa1 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_HANDLEADDITIONALCHARACTERSATENDL=0xb1 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_HANDLEBLOCKCHANGEL=0x40 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_HANDLECHAREDITL=0xa7 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_HIGHLIGHTUSINGEXTENSIONS=0xb2 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_ISPICTUREFRAMESELECTED=0xa0 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_MOVECURSORL=0x48 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_NOMEMORYCHECKL=0xb6 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_NOMEMORYL=0xb5 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_RECOVERNOMEMORYL=0xb7 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_SCROLLDISPLAYL=0x46 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_SCROLLRECT=0xaf +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_SCROLLTEXTL=0xad +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_SETCURSORVISIBILITYL=0x4c +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_SETDOCPOSL=0x44 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_SETHORIZONTALSCROLLJUMP=0xb9 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_SETSELECTIONL=0x31 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_SETSELECTIONVISIBILITYL=0x4d +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_SETVIEWL=0xb0 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_SETXYPOSL=0x45 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTEXTVIEW_XYPOSTODOCPOSL=0x33 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTMLINE_APPENDCHUNKL=0x8f +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTMLINE_WRITEINLINETEXTL=0x90 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTMTEXTIMP_GETPARAGRAPHFORMATL=0x83 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTMTEXTIMP_GETTEXT=0x82 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CTMTEXTIMP_INSERTL=0x81 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTLAYOUT_EXTENDFORMATTINGTOCOVERPOSL=0xc2 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTLAYOUT_FORMATCHARRANGEL=0xc4 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTLAYOUT_FORMATNEXTLINEL=0xc7 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTLAYOUT_GETLINERECTL=0xbf +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTLAYOUT_PAGEDOWNL=0xce +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTLAYOUT_SCROLLDOCPOSINTOVIEWL=0xd1 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTLAYOUT_SCROLLLINESL=0xc8 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTVIEW_GETBACKWARDDELETEPOSITIONL=0xa5 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTVIEW_GETFORWARDDELETEPOSITIONL=0xa2 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTVIEW_HANDLEBLOCKCHANGEL=0xab +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTVIEW_HANDLECHAREDITL=0xa8 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTVIEW_HIGHLIGHTUSINGEXTENSIONS=0xb3 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTVIEW_RECOVERNOMEMORYL=0xb8 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTVIEW_SCROLLDISPLAYL=0x47 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTVIEW_SCROLLTEXTL=0xae +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTEXTVIEW_SETHORIZONTALSCROLLJUMP=0xba +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CTMLINE_WRITEINLINETEXTL=0x91 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_RRUNARRAY_FINDRUNNONSTRICT=0x86 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_RRUNARRAY_INSERT=0x89 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_RRUNARRAY_SET=0x8c +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_RTMDRAWINGINTERPRETER_GETNEXTADJUSTEDHIGHLIGHTCLIPRECT=0x7d +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_RTMGRAPHEMEEDGEITERATOR_NEXT=0x78 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_RTMGRAPHEMEINTEXTCHUNKITERATOR_BEGIN=0x71 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_RTMGRAPHEMEINTEXTCHUNKITERATOR_NEXT=0x73 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_TCURSORPOSITION_CHECKCURSORONSCREENL=0x99 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_TTMBYTECODEFINDER_FINDBYTECODE=0x7f +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CTEXTLAYOUT_FORMATCHARRANGEL=0xc5 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CTEXTLAYOUT_GETLINERECTL=0xc0 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CTEXTLAYOUT_SCROLLLINESL=0xca +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CTEXTPAGEREGIONPRINTER_PRINTBANDL=0x9d +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CTEXTVIEW_GETFORWARDDELETEPOSITIONL=0xa3 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CTEXTVIEW_HANDLEBLOCKCHANGEL=0xac +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CTEXTVIEW_HANDLECHAREDITL=0xa9 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_RRUNARRAY_INSERT=0x8a +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_RTMGRAPHEMEINTEXTCHUNKITERATOR_NEXT=0x74 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_TCURSORPOSITION_CHECKCURSORONSCREENL=0x9a +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP3_CTEXTLAYOUT_SCROLLLINESL=0xcb +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP3_CTEXTVIEW_HANDLEBLOCKCHANGEL=0x43 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP3_CTEXTVIEW_HANDLECHAREDITL=0xaa +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP4_CTEXTLAYOUT_SCROLLLINESL=0xcc +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RRUNARRAY_DELETE=0x8d +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RRUNARRAY_FINDRUN=0x84 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RRUNARRAY_FINDRUNNONSTRICT=0x85 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RRUNARRAY_INSERT=0x88 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RRUNARRAY_RUNANDSTARTPOS=0x87 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RRUNARRAY_SET=0x8b +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RSCREENDISPLAY_CREATECONTEXTL=0x9e +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMDRAWINGINTERPRETER_GETADJUSTEDHIGHLIGHTCLIPREGION=0x7a +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMDRAWINGINTERPRETER_GETFIRSTADJUSTEDHIGHLIGHTCLIPRECT=0x7b +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMDRAWINGINTERPRETER_GETNEXTADJUSTEDHIGHLIGHTCLIPRECT=0x7c +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMGENERALINTERPRETER_GETDISPLAYEDTEXTL=0x79 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMGRAPHEMEEDGEITERATOR_NEXT=0x77 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMGRAPHEMEINTEXTCHUNKITERATORNICE_FINDEDGE=0x76 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMGRAPHEMEINTEXTCHUNKITERATORNICE_NEXT=0x75 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMGRAPHEMEINTEXTCHUNKITERATOR_NEXT=0x72 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RTMTEXTCACHE_GETDISPLAYEDTEXT=0x70 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TCURSORPOSITION_CHECKCURSORONSCREENL=0x98 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TCURSORPOSITION_CHECKSELECTION=0x92 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TCURSORPOSITION_LEFTRIGHTL=0x94 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TCURSORPOSITION_PAGESCROLLL=0x97 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TCURSORPOSITION_SETSELECTIONL=0x93 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TCURSORPOSITION_STARTEND=0x95 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TCURSORPOSITION_UPDOWNL=0x96 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TLINEPAGINATOR_INSERTPAGEBREAKL=0xbc +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TTMBYTECODEFINDER_FINDBYTECODE=0x7e +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TTMBYTECODEFINDER_FINDBYTECODEATEND=0x80 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TTMCHUNK_SETL=0x8e +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTLAYOUT_ADJUSTVERTICALALIGNMENT=0x50 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTLAYOUT_GETLINERECTL=0x4a +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTLAYOUT_HANDLEBLOCKCHANGEL=0x4f +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTLAYOUT_HANDLECHAREDITL=0x4c +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTLAYOUT_RESETEXTERNALDRAW=0x48 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTLAYOUT_SETFORMATMODE=0x49 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTPAGEREGIONPRINTER_LEAVEL=0x42 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTPAGINATOR_APPENDTEXTL=0x3e +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTPAGINATOR_LEAVEL=0x40 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTPAGINATOR_PAGINATECOMPLETEDOCUMENTL=0x3d +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTPAGINATOR_SETPRINTERDEVICE=0x3c +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTVIEW_CONSTRUCTL=0x44 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTVIEW_MATCHCURSORHEIGHTL=0x46 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTEXTVIEW_SETLAYOUT=0x45 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTMBUFFERBASE_TRUNCATE=0x39 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CTMTEXTLAYOUT_GETDISPLAYEDTEXTL=0x38 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CTEXTLAYOUT_HANDLECHAREDITL=0x4d +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CTEXTLAYOUT_SETEXTERNALDRAW=0x47 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CTEXTPAGEREGIONPRINTER_PRINTBANDL=0x41 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CTEXTPAGINATOR_APPENDTEXTL=0x3f +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_TCURSOR_DRAWLINECURSOR=0x43 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_TTMBYTECODEFINDER_FINDBYTECODEATEND=0x36 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_TTMINTERPRETER_DOCPOSTOLINE=0x2e +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_TTMINTERPRETER_HORIZONTALEXTREMES=0x34 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1__APPENDTEXTTOBUFFER=0x29 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CTEXTLAYOUT_HANDLECHAREDITL=0x4b +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_TTMBYTECODEFINDER_FINDBYTECODEATEND=0x37 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP3_CTEXTLAYOUT_HANDLECHAREDITL=0x4e +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP3_TTMBYTECODEFINDER_FINDBYTECODE=0x35 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_RTMGENERALINTERPRETER_RTMGENERALINTERPRETER=0x2a +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TCURSORPOSITION_SETXYPOSL=0x3b +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMHIGHLIGHTSOURCE_TTMHIGHLIGHTSOURCE=0x3a +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_DOCPOSTOLINE=0x2d +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_HORIZONTALEXTREMES=0x33 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_LINENUMBERTOLINE=0x2f +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_LINES=0x2b +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_PARAGRAPHS=0x2c +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_PARNUMBERTOLINE=0x30 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_WIDTHOFWIDESTLINE=0x32 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_TTMINTERPRETER_YPOSTOLINE=0x31 diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/group/ETEXT.MMP --- a/textrendering/texthandling/group/ETEXT.MMP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/texthandling/group/ETEXT.MMP Tue Jul 06 16:23:19 2010 +0300 @@ -27,12 +27,11 @@ UID 0x1000008D 0x10003A1C VENDORID 0x70000001 -SOURCEPATH . SOURCEPATH ../stext userinclude ../stext userinclude ../inc -USERINCLUDE ../../texthandling/inc +USERINCLUDE ../../texthandling/inc ../traces OS_LAYER_SYSTEMINCLUDE_SYMBIAN source TXTETEXT.CPP diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/stext/ParseLst.cpp --- a/textrendering/texthandling/stext/ParseLst.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/texthandling/stext/ParseLst.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -18,6 +18,13 @@ #include "TXTSTD.H" #include "ParseLst.h" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "ParseLstTraces.h" +#endif + + + //++ sort out definitive hash includes @@ -31,6 +38,7 @@ // Panic the process with UikParse as the category. void CParserList::Panic(TParserListPanic aPanic) const { + OstTraceExt2( TRACE_FATAL, DUP1_CPARSERLIST_PANIC, "CParserList::Panic;this=%x;aPanic=%x", (unsigned int)this, ( TUint )&( aPanic ) ); _LIT(panicStr, "ParseLst"); User::Panic(panicStr, aPanic); } @@ -59,7 +67,15 @@ // uint (I'm using the top 3 bits as flags) this allows 268435456 parsers // to be installed. (Assuming we deinstall almost as many, as we went // along, to avoid OOM.) At 50 per sec that's 20 years continuous action! + if (iHighestIndex >= EMaxParserIndex) + { + OstTrace0( TRACE_DUMP, CPARSERLIST_ACTIVATEAPARSERL, "EParserIndexRollover" ); + } __ASSERT_DEBUG((iHighestIndex < EMaxParserIndex), Panic(EParserIndexRollover)); + if (!aParser) + { + OstTrace0( TRACE_DUMP, DUP1_CPARSERLIST_ACTIVATEAPARSERL, "EParserNullPtr" ); + } __ASSERT_DEBUG(aParser, Panic(EParserNullPtr)); TUint parserIndex = iHighestIndex + 1; // Adjust flags to describe parser @@ -112,7 +128,15 @@ // an EText left with a local ptr to it. void CParserList::DeactivateParser(MParser* aParser) { + if (!iNumberInList) + { + OstTrace0( TRACE_DUMP, CPARSERLIST_DEACTIVATEPARSER, "EParserNoneActive" ); + } __ASSERT_DEBUG(iNumberInList, Panic(EParserNoneActive)); + if (!aParser) + { + OstTrace0( TRACE_DUMP, DUP1_CPARSERLIST_DEACTIVATEPARSER, "EParserNullPtr" ); + } __ASSERT_DEBUG(aParser, Panic(EParserNullPtr)); // Run thru list till find entry we need TInt count; @@ -125,6 +149,10 @@ break; } } + if (count >= iNumberInList) + { + OstTrace0( TRACE_DUMP, DUP2_CPARSERLIST_DEACTIVATEPARSER, "EParserInstanceNotActive" ); + } __ASSERT_DEBUG((count < iNumberInList), Panic(EParserInstanceNotActive)); iNumberInList--; } @@ -274,6 +302,10 @@ TInt result = parser->ParseThisText(aTextObj, allowBack, localStartScan, localScanLength, localStartTag, localTagLength); if (!result) break; + if (!allowBack && (localStartTag < localStartScan)) + { + OstTrace0( TRACE_DUMP, CPARSERLIST_PARSETHISTEXT, "EParserIgnoringAllowFlag" ); + } __ASSERT_DEBUG(allowBack || (localStartTag >= localStartScan), Panic(EParserIgnoringAllowFlag)); TInt startNewTag = localStartTag; TInt lengthNewTag = localTagLength; @@ -424,6 +456,10 @@ break; } } + if (!tagIndex) + { + OstTrace0( TRACE_DUMP, CPARSERLIST_TAGFORTHISPARSER, "EParserNoSuchTag" ); + } __ASSERT_DEBUG(tagIndex, Panic(EParserNoSuchTag)); return tagIndex; } diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/stext/TXTETEXT.CPP --- a/textrendering/texthandling/stext/TXTETEXT.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/texthandling/stext/TXTETEXT.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -41,6 +41,11 @@ #include "TXTRTPFL.H" #include "TXTCLIPBOARD.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TXTETEXTTraces.h" +#endif + #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include "TXTETEXT_INTERNAL.H" #endif @@ -258,7 +263,15 @@ EXPORT_C void CEditableText::StartFepInlineEditL(TBool& aParagraphContainingStartPositionOfInlineTextHasChangedFormat,TInt& aNumberOfCharactersSuccessfullyDeleted,TInt& aNumberOfCharactersSuccessfullyInserted,TInt& aPositionOfInsertionPointInDocument,TInt aNewPositionOfInsertionPointInDocument,const TDesC& aInitialInlineText,TInt aPositionOfInlineTextInDocument,TInt aNumberOfCharactersToHide,MFepInlineTextFormatRetriever& aInlineTextFormatRetriever) /** @internalAll */ { + if (aPositionOfInlineTextInDocument<0 || aNumberOfCharactersToHide<0 || aPositionOfInlineTextInDocument+aNumberOfCharactersToHide>DocumentLength()) + { + OstTrace0( TRACE_DUMP, CEDITABLETEXT_STARTFEPINLINEEDITL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPositionOfInlineTextInDocument>=0 && aNumberOfCharactersToHide>=0 && aPositionOfInlineTextInDocument+aNumberOfCharactersToHide<=DocumentLength(),Panic(ECharPosBeyondDocument)); + if (InlineEditData()!=NULL) + { + OstTrace0( TRACE_DUMP, DUP1_CEDITABLETEXT_STARTFEPINLINEEDITL, "EAlreadyFepInlineEditing" ); + } __ASSERT_ALWAYS(InlineEditData()==NULL,Panic(EAlreadyFepInlineEditing)); aParagraphContainingStartPositionOfInlineTextHasChangedFormat=EFalse; aNumberOfCharactersSuccessfullyDeleted=0; @@ -295,12 +308,20 @@ /** @internalAll */ { CInlineEditData* const inlineEditData=InlineEditData(); + if (inlineEditData==NULL) + { + OstTrace0( TRACE_DUMP, CEDITABLETEXT_UPDATEFEPINLINETEXTL, "ENotCurrentlyFepInlineEditing" ); + } __ASSERT_ALWAYS(inlineEditData!=NULL,Panic(ENotCurrentlyFepInlineEditing)); aParagraphContainingStartPositionOfInlineTextHasChangedFormat=EFalse; aNumberOfCharactersSuccessfullyDeleted=0; aNumberOfCharactersSuccessfullyInserted=0; HBufC*& inlineText=inlineEditData->iInlineText; HBufC* oldInlineText=inlineText; + if (oldInlineText!=NULL && inlineEditData->iLengthOfInlineText!=oldInlineText->Length()) + { + OstTrace0( TRACE_DUMP, DUP1_CEDITABLETEXT_UPDATEFEPINLINETEXTL, "EDebug" ); + } __ASSERT_DEBUG(oldInlineText==NULL || inlineEditData->iLengthOfInlineText==oldInlineText->Length(),Panic(EDebug)); const TInt lengthOfNewInlineText=aNewInlineText.Length(); if (oldInlineText!=NULL && *oldInlineText==aNewInlineText) @@ -346,7 +367,15 @@ */ { const CInlineEditData* const inlineEditData=InlineEditData(); + if (inlineEditData==NULL) + { + OstTrace0( TRACE_FATAL, DUP1_CEDITABLETEXT_COMMITFEPINLINEEDITL, "ENotCurrentlyFepInlineEditing" ); + } __ASSERT_ALWAYS(inlineEditData!=NULL,Panic(ENotCurrentlyFepInlineEditing)); + if (inlineEditData->iInlineText!=NULL && inlineEditData->iLengthOfInlineText!=inlineEditData->iInlineText->Length()) + { + OstTrace0( TRACE_DUMP, CEDITABLETEXT_COMMITFEPINLINEEDITL, "EDebug" ); + } __ASSERT_DEBUG(inlineEditData->iInlineText==NULL || inlineEditData->iLengthOfInlineText==inlineEditData->iInlineText->Length(),Panic(EDebug)); aParagraphContainingStartPositionOfInlineTextHasChangedFormat=EFalse; const TInt lengthOfInlineText=inlineEditData->iLengthOfInlineText; @@ -370,6 +399,10 @@ { const TInt positionOfInlineTextInDocument=inlineEditData->iPositionOfInlineTextInDocument; const TInt lengthOfInlineText=inlineEditData->iLengthOfInlineText; + if (inlineEditData->iInlineText!=NULL && lengthOfInlineText!=inlineEditData->iInlineText->Length()) + { + OstTrace0( TRACE_DUMP, CEDITABLETEXT_CANCELFEPINLINEEDIT, "EDebug" ); + } __ASSERT_DEBUG(inlineEditData->iInlineText==NULL || lengthOfInlineText==inlineEditData->iInlineText->Length(),Panic(EDebug)); TRAPD(notUsed, if (lengthOfInlineText>0) @@ -381,6 +414,10 @@ const HBufC* const hiddenText=inlineEditData->iHiddenText; if (hiddenText!=NULL) { + if (hiddenText->Length()<=0) + { + OstTrace0( TRACE_DUMP, DUP1_CEDITABLETEXT_CANCELFEPINLINEEDIT, "EDebug" ); + } __ASSERT_DEBUG(hiddenText->Length()>0, Panic(EDebug)); InsertL(positionOfInlineTextInDocument,*hiddenText); aNumberOfCharactersSuccessfullyInserted=hiddenText->Length(); @@ -562,6 +599,10 @@ /** Allocates storage of CBufFlat or CBufSeg, according to the parameter aStorage. Creates & initializes the field set.*/ { + if (iByteStore!=NULL) + { + OstTrace0( TRACE_DUMP, CPLAINTEXT_DOCONSTRUCTL, "EConstructCalledTwice" ); + } __ASSERT_DEBUG(iByteStore==NULL,Panic(EConstructCalledTwice)); iByteStore=(aStorage==ESegmentedStorage) @@ -884,8 +925,20 @@ { __TEST_INVARIANT; TInt documentLength = DocumentLength(); + if (aPos < 0 || aPos > documentLength) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_DOCOPYTOSTOREL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= documentLength,Panic(ECharPosBeyondDocument)); + if (aLength < 0) + { + OstTrace0( TRACE_FATAL, DUP1_CPLAINTEXT_DOCOPYTOSTOREL, "ECopyToStreamNegativeLength" ); + } __ASSERT_ALWAYS(aLength >= 0,Panic(ECopyToStreamNegativeLength)); + if (aPos + aLength > documentLength) + { + OstTrace0( TRACE_FATAL, DUP2_CPLAINTEXT_DOCOPYTOSTOREL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + aLength <= documentLength,Panic(ECharPosBeyondDocument)); if (aLength == 0) @@ -924,8 +977,20 @@ { __TEST_INVARIANT; TInt documentLength = DocumentLength(); + if (aPos < 0 || aPos > documentLength) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_COPYTOSTREAML, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= documentLength,Panic(ECharPosBeyondDocument)); + if (aLength < 0) + { + OstTrace0( TRACE_FATAL, DUP1_CPLAINTEXT_COPYTOSTREAML, "ECopyToStreamNegativeLength" ); + } __ASSERT_ALWAYS(aLength >= 0,Panic(ECopyToStreamNegativeLength)); + if (aPos + aLength > documentLength) + { + OstTrace0( TRACE_FATAL, DUP2_CPLAINTEXT_COPYTOSTREAML, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + aLength <= documentLength,Panic(ECharPosBeyondDocument)); aStream.WriteInt32L(aLength); @@ -961,6 +1026,10 @@ TInt CPlainText::DoPasteFromStoreL(const CStreamStore& aStore,TStreamId aStreamId,TInt aPos) { + if (aPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_DOPASTEFROMSTOREL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); TInt charsPasted=0; @@ -1007,6 +1076,7 @@ if (error != KErrNone) { DoPtDelete(aPos,chars_read); + OstTrace1( TRACE_FATAL, DUP1_CPLAINTEXT_PASTEFROMSTREAML, "Leave code=%d", error ); User::Leave(error); } @@ -1058,6 +1128,10 @@ /** Inserts the end-of-document character upon document construction.*/ { // ASSERT: The plain text component is empty. + if (DocumentLength()!=-1) + { + OstTrace0( TRACE_DUMP, DUP1_CPLAINTEXT_INSERTEODL, "ECorruptTextStore" ); + } __ASSERT_DEBUG(DocumentLength()==-1,Panic(ECorruptTextStore)); TBuf<1> content; content.Append(EParagraphDelimiter); @@ -1113,6 +1187,10 @@ @param aBuf The descriptor to insert. */ { __TEST_INVARIANT; + if (aInsertPos<0 || aInsertPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_INSERTL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aInsertPos>=0 && aInsertPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); TInt contentLength = 1; @@ -1156,6 +1234,10 @@ Maintain field set.*/ { __TEST_INVARIANT; + if (aPos<0 || aPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_PTINSERTL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); DoPtInsertL(aPos,aBuf); @@ -1241,8 +1323,20 @@ EFalse, so no reformatting occurs.*/ { TInt documentLength=DocumentLength()+1; + if (aPos<0 || aPos>documentLength) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_DOPTDELETE, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=documentLength,Panic(ECharPosBeyondDocument)); + if (aLength<0) + { + OstTrace0( TRACE_FATAL, DUP1_CPLAINTEXT_DOPTDELETE, "EDeleteNegativeLength" ); + } __ASSERT_ALWAYS(aLength>=0,Panic(EDeleteNegativeLength)); + if (aPos+aLength>documentLength) + { + OstTrace0( TRACE_FATAL, DUP2_CPLAINTEXT_DOPTDELETE, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos+aLength<=documentLength,Panic(ECharPosBeyondDocument)); iByteStore->Delete(aPos*sizeof(TText),aLength*sizeof(TText)); @@ -1290,6 +1384,10 @@ file.Close(); file_session.Close(); } + if (error < 0) + { + OstTrace1( TRACE_FATAL, DUP1_CPLAINTEXT_IMPORTTEXTFILEL, "Leave code=%x", error ); + } User::LeaveIfError(error); return chars_inserted; } @@ -1314,6 +1412,10 @@ @param aMaxLineLength The maximum number of characters in each line, (only relevant if the text organisation is EOrganiseByLine). */ { + if (aTextOrganisation != EOrganiseByParagraph && aLineWrap <= 0) + { + OstTrace0( TRACE_DUMP, CPLAINTEXT_EXPORTASTEXTL, "EExportLineWrapInvalid" ); + } __ASSERT_DEBUG(aTextOrganisation == EOrganiseByParagraph || aLineWrap > 0,Panic(EExportLineWrapInvalid)); RFs file_session; TInt error = file_session.Connect(); @@ -1332,6 +1434,10 @@ file.Close(); file_session.Close(); } + if (error < 0) + { + OstTrace1( TRACE_FATAL, DUP2_CPLAINTEXT_EXPORTASTEXTL, "Leave code=%x", error ); + } User::LeaveIfError(error); } @@ -1485,6 +1591,10 @@ */ { __TEST_INVARIANT; + if (aStartPos<0 || aStartPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, DUP1_CPLAINTEXT_READ, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aStartPos>=0 && aStartPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); TPtr8 buf=iByteStore->Ptr(aStartPos*sizeof(TText)); @@ -1511,6 +1621,10 @@ */ { __TEST_INVARIANT; + if (aStartPos<0 || aStartPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_READ, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aStartPos>=0 && aStartPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); TPtr8 buf=iByteStore->Ptr(aStartPos*sizeof(TText)); @@ -1534,7 +1648,15 @@ { __TEST_INVARIANT; TInt documentLength=DocumentLength(); + if (aPos<0 || aPos>documentLength) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_EXTRACT, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=documentLength,Panic(ECharPosBeyondDocument)); + if (aBuf.MaxLength()=documentLength - aPos,Panic(EExtractBufferTooSmall)); DoExtract(aBuf,aPos,documentLength-aPos); @@ -1556,7 +1678,15 @@ @param aLength The number of characters to copy. */ { __TEST_INVARIANT; + if (aPos<0 || aPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, DUP2_CPLAINTEXT_EXTRACT, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); + if (aBuf.MaxLength()=aLength,Panic(EExtractBufferTooSmall)); DoExtract(aBuf,aPos,aLength); @@ -1566,6 +1696,10 @@ // inline text, depending on the flag. EXPORT_C void CPlainText::ExtractSelectively(TDes& aBuf,TInt aPos,TInt aLength,TUint aFlags) { + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_EXTRACTSELECTIVELY, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(),Panic(ECharPosBeyondDocument)); DoExtract(aBuf,aPos,aLength,aFlags); } @@ -1656,6 +1790,10 @@ // { __TEST_INVARIANT; + if (aPos<0 || aPos>DocumentLength()+1) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_UPDATEPAGETABLE, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength()+1,Panic(ECharPosBeyondDocument)); if (iPageTable) @@ -1672,6 +1810,10 @@ @return The page number containing document position aPos. */ { __TEST_INVARIANT; + if (aPos<0 || aPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_PAGECONTAININGPOS, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); if (!iPageTable || (iPageTable->Count()<1)) @@ -1725,7 +1867,15 @@ field types, see the UID values defined in flddef.h. */ { __TEST_INVARIANT; + if (aPos<0 || aPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_INSERTFIELDL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); + if (!aField) + { + OstTrace0( TRACE_FATAL, DUP1_CPLAINTEXT_INSERTFIELDL, "ENoTextField" ); + } __ASSERT_ALWAYS(aField,Panic(ENoTextField)); if (!FieldSetPresent()) @@ -1752,6 +1902,10 @@ position, or a panic occurs. */ { __TEST_INVARIANT; + if (aPos<0 || aPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_UPDATEFIELDL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); if (!FieldSetPresent()) @@ -1816,6 +1970,10 @@ at aPos. */ { __TEST_INVARIANT; + if (aPos<0 || aPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_REMOVEFIELD, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); TBool fieldRemoved=EFalse; @@ -1902,6 +2060,10 @@ field located at aPos. */ { __TEST_INVARIANT; + if (aPos<0 || aPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_CONVERTFIELDTOTEXT, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); TBool fieldConverted=EFalse; diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/stext/TXTFMLYR.CPP --- a/textrendering/texthandling/stext/TXTFMLYR.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/texthandling/stext/TXTFMLYR.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -23,6 +23,11 @@ #include #include "TXTSTD.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TXTFMLYRTraces.h" +#endif + #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include "TXTFMLYR_INTERNAL.H" #endif @@ -148,8 +153,16 @@ @param aExcludeCount The number of layers to be excluded. By default, zero. */ { // ASSERT: aExcludeCount is positive. + if (aExcludeCount<0) + { + OstTrace0( TRACE_FATAL, CFORMATLAYER_EXTERNALIZECHAINL, "ECannotStoreFormatLayerChain" ); + } __ASSERT_ALWAYS(aExcludeCount>=0,Panic(ECannotStoreFormatLayerChain)); // ASSERT: The number of layers to be excluded is less than the total no. of layers. + if (aExcludeCount>=ChainCount()) + { + OstTrace0( TRACE_FATAL, DUP1_CFORMATLAYER_EXTERNALIZECHAINL, "ECannotStoreFormatLayerChain" ); + } __ASSERT_ALWAYS(aExcludeCountExternalizeLayersRecurseL(aStream,--aDescendantCount); } @@ -360,6 +377,10 @@ EAllAttributes, all attributes are written; if EFixedAttributes, tabs, bullets and borders are not written. */ { + if (aParaFormat==NULL) + { + OstTrace0( TRACE_FATAL, CPARAFORMATLAYER_SENSEEFFECTIVEL, "ENullFormatPointer" ); + } __ASSERT_ALWAYS(aParaFormat!=NULL,Panic(ENullFormatPointer)); aParaFormat->Reset(); TParaFormatMask mask; @@ -390,6 +411,10 @@ EAllAttributes, all attributes are written; if EFixedAttributes, tabs, bullets and borders are not written. */ { + if (aParaFormat==NULL) + { + OstTrace0( TRACE_FATAL, CPARAFORMATLAYER_SENSEL, "ENullFormatPointer" ); + } __ASSERT_ALWAYS(aParaFormat!=NULL,Panic(ENullFormatPointer)); iStore.SenseParaFormatL(*aParaFormat,aMask,aMode); diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/stext/TXTFMSTM.CPP --- a/textrendering/texthandling/stext/TXTFMSTM.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/texthandling/stext/TXTFMSTM.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -24,6 +24,11 @@ #include #include "TXTSTD.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TXTFMSTMTraces.h" +#endif + const TInt KMaxFormatStreamLength=0x400; // 1024 bytes @@ -290,6 +295,10 @@ void RFormatStream::CopyL(const RFormatStream& aSource) { TInt size = aSource.iEnd - aSource.iBase; + if (size < 0) + { + OstTrace0( TRACE_DUMP, RFORMATSTREAM_COPYL, "EDebug" ); + } __ASSERT_DEBUG(size >= 0,Panic(EDebug)); if (size == 0) Reset(); @@ -357,6 +366,10 @@ { __TEST_INVARIANT; aLength=iEnd-iBase; + if (!((iBase==NULL && aLength==0) || (iBase!=NULL && aLength>0))) + { + OstTrace0( TRACE_DUMP, RFORMATSTREAM_PTR, "ECorruptFormatLayer" ); + } __ASSERT_DEBUG((iBase==NULL && aLength==0) || (iBase!=NULL && aLength>0),Panic(ECorruptFormatLayer)); return iBase; } @@ -1594,7 +1607,15 @@ } } // ASSERT: The tabList offsets are as we would expect in a normal (correct) completion. + if (offsetInDesired!=aDesiredTabCount) + { + OstTrace0( TRACE_FATAL, RFORMATSTREAM_MERGETABLISTS, "EStoreTabError" ); + } __ASSERT_ALWAYS(offsetInDesired==aDesiredTabCount,Panic(EStoreTabError)); + if (offsetInCurrent!=aCurrentTabCount) + { + OstTrace0( TRACE_FATAL, DUP1_RFORMATSTREAM_MERGETABLISTS, "EStoreTabError" ); + } __ASSERT_ALWAYS(offsetInCurrent==aCurrentTabCount,Panic(EStoreTabError)); return requiredTabCount; } @@ -1774,6 +1795,11 @@ // // Read typeface name TInt typefaceLength=length-KTypefaceFlags; + + if ((typefaceLength%2)!=0) + { + OstTrace0( TRACE_DUMP, RFORMATSTREAM_READVALUE, "ECorruptFormatLayer" ); + } __ASSERT_DEBUG((typefaceLength%2)==0,Panic(ECorruptFormatLayer)); // must be an even number TPtr name=aTypeface.iName.Des(); @@ -1830,6 +1856,10 @@ { TInt length=TheAttributeLength[aType]; + if (length<0) + { + OstTrace0( TRACE_DUMP, RFORMATSTREAM_LENGTH, "EAttributeLengthLookupNegative" ); + } __ASSERT_DEBUG(length>=0,Panic(EAttributeLengthLookupNegative)); if (length>0) return length; diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/stext/TXTFRMAT.CPP --- a/textrendering/texthandling/stext/TXTFRMAT.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/texthandling/stext/TXTFRMAT.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -23,6 +23,11 @@ #include "TXTFRMAT.H" #include "TXTSTD.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TXTFRMATTraces.h" +#endif + const TInt KParaDefaultLanguage=0; @@ -647,6 +652,10 @@ of tab stops, use TabCount(). @return The tab stop located at the specified index. */ { + if (aTabIndex>=TabCount()) + { + OstTrace0( TRACE_FATAL, CPARAFORMAT_TABSTOP, "ETabNotFound" ); + } __ASSERT_ALWAYS(aTabIndexDocumentLength()) + { + OstTrace0( TRACE_FATAL, CGLOBALTEXT_GETCHARS, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aStartPos>=0 && aStartPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); aView.Set(Read(aStartPos)); diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/stext/TXTINDEX.CPP --- a/textrendering/texthandling/stext/TXTINDEX.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/texthandling/stext/TXTINDEX.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -27,6 +27,11 @@ #include "TXTSTYLE.H" #include "TXTINDEX.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TXTINDEXTraces.h" +#endif + #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include "TXTFMLYR_INTERNAL.H" #include "TXTSTYLE_INTERNAL.H" @@ -70,6 +75,10 @@ // ASSERT: The basedOn link is valid. CFormatLayer* thisLayer=(*iParaIx)[para].iParaAttribs->iParaFormat; CFormatLayer* base=CONST_CAST(CFormatLayer*,thisLayer->SenseBase()); + if (base==NULL) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_DBGTESTINVARIANT, "base==NULL" ); + } __ASSERT_DEBUG(base!=NULL,User::Invariant()); if ((*iParaIx)[para].iParaAttribs->iRefCount>0) numberOfReferencesToSharedList++; @@ -83,7 +92,15 @@ const RPhraseAttribsEntry* phrase=&(*iPhraseIx)[currentPhraseElement]; CCharFormatLayer* charFormatLayer=phrase->CharFormat(); // ASSERT: The basedOn link is valid. + if (charFormatLayer->SenseBase()==NULL) + { + OstTrace0( TRACE_DUMP, DUP1_CRICHTEXTINDEX_DBGTESTINVARIANT, "charFormatLayer->SenseBase()==NULL" ); + } __ASSERT_DEBUG(charFormatLayer->SenseBase()!=NULL,User::Invariant()); + if (TInt(charFormatLayer->SenseBase())<=0x1000) + { + OstTrace0( TRACE_DUMP, DUP2_CRICHTEXTINDEX_DBGTESTINVARIANT, "TInt(charFormatLayer->SenseBase())<=0x1000" ); + } __ASSERT_DEBUG(TInt(charFormatLayer->SenseBase())>0x1000,User::Invariant()); sumOfPhraseLengths+=(*iPhraseIx)[currentPhraseElement].Length(); if ((*iPhraseIx)[currentPhraseElement].Length()==0) @@ -94,16 +111,34 @@ { CCharFormatLayer* charFormatLayer=(*iParaIx)[para].iParaAttribs->iCharFormat; // ASSERT: The basedOn link is valid. + if (charFormatLayer->SenseBase()==NULL) + { + OstTrace0( TRACE_DUMP, DUP3_CRICHTEXTINDEX_DBGTESTINVARIANT, "charFormatLayer->SenseBase()==NULL" ); + } __ASSERT_DEBUG(charFormatLayer->SenseBase()!=NULL,User::Invariant()); sumOfPhraseLengths+=(*iParaIx)[para].iLength; } } + if (sumOfPhraseLengths!=paragraphLength) + { + OstTrace0( TRACE_DUMP, DUP4_CRICHTEXTINDEX_DBGTESTINVARIANT, "sumOfPhraseLengths!=paragraphLength" ); + } __ASSERT_DEBUG(sumOfPhraseLengths==paragraphLength,User::Invariant()); } // ASSERT: We have no unexpected phrases left over + if (currentPhraseElement!=-1 && + currentPhraseElement!=iPhraseIx->Count()) + { + OstTrace0( TRACE_DUMP, DUP5_CRICHTEXTINDEX_DBGTESTINVARIANT, "We have no unexpected phrases left over" ); + } __ASSERT_DEBUG(currentPhraseElement==-1 || currentPhraseElement==iPhraseIx->Count(),User::Invariant()); // ASSERT: There is either zero(0) or one(1) zero length phrase in the whole index + if (!((zeroLengthPhraseCount==0) || + (zeroLengthPhraseCount==1 && iPendingNewPhrasePos!=EInsertCharFormatReset))) + { + OstTrace0( TRACE_DUMP, DUP6_CRICHTEXTINDEX_DBGTESTINVARIANT, "There is either zero(0) or one(1) zero length phrase in the whole index" ); + } __ASSERT_DEBUG( (zeroLengthPhraseCount==0) || (zeroLengthPhraseCount==1 && iPendingNewPhrasePos!=EInsertCharFormatReset), User::Invariant()); @@ -117,6 +152,11 @@ while ((currentSharedPara=iterator++)!=NULL) totalReferenceCount+=currentSharedPara->iRefCount; } + if ((numberOfReferencesToSharedList!=totalReferenceCount) && + (numberOfReferencesToSharedList!=totalReferenceCount-1)) + { + OstTrace0( TRACE_DUMP, DUP7_CRICHTEXTINDEX_DBGTESTINVARIANT, "Invariant" ); + } __ASSERT_DEBUG((numberOfReferencesToSharedList==totalReferenceCount) || (numberOfReferencesToSharedList==totalReferenceCount-1),User::Invariant()); // ASSERT: iPictureCount corresponds to the number of pictures in the stored in the index. @@ -126,6 +166,10 @@ picCount+=((*iPhraseIx)[item].IsPicturePhrase()) ? 1 : 0; + if (iPictureCount!=picCount) + { + OstTrace0( TRACE_DUMP, DUP8_CRICHTEXTINDEX_DBGTESTINVARIANT, "Invariant" ); + } __ASSERT_DEBUG(iPictureCount==picCount,User::Invariant()); #endif } @@ -186,6 +230,10 @@ TInt count; if (iPhraseIx) {// Destroy the phrase index and its contents. + if (!iParaIx) + { + OstTrace0( TRACE_FATAL, CRICHTEXTINDEX_CRICHTEXTINDEX, "EPhraseIxPresentWithNoParaIx" ); + } __ASSERT_ALWAYS(iParaIx,Panic(EPhraseIxPresentWithNoParaIx)); count=iPhraseIx->Count(); for (TInt offset=0;offset iterator(iSharedParaQueHead); while ((currentSharedPara=iterator++)!=NULL) currentSharedPara->Release(currentSharedPara->iRefCount); + if (!iSharedParaQueHead.IsEmpty()) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXTINDEX_CRICHTEXTINDEX, "ERichTextIndexIntegrityErr" ); + } __ASSERT_ALWAYS(iSharedParaQueHead.IsEmpty(),Panic(ERichTextIndexIntegrityErr)); } @@ -397,6 +449,10 @@ {// For each para inserted between the fist and last TParaAttribsEntry& para=(*iParaIx)[pastePos.iParaElement+paraItem]; TInt length=ParaLengthFromBuffer(buf)+1; + if (length==KErrNotFound) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_INSERTL, "EInsertEmbeddedParaErr" ); + } __ASSERT_DEBUG(length!=KErrNotFound,Panic(EInsertEmbeddedParaErr)); para.iLength=length; buf.Set(buf.Right(buf.Length()-length)); @@ -452,6 +508,10 @@ current.iPhrase->AdjustLength(-1); // collapse phrase by right amount if (insertPendingPos!=EInsertCharFormatReset) { + if (current.iPhrase->Length()!=0) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_SPLITPARAGRAPHATPASTEPOSL, "Invariant" ); + } __ASSERT_DEBUG(current.iPhrase->Length()==0,User::Invariant()); iPendingNewPhrasePos=insertPendingPos; } @@ -459,9 +519,14 @@ { RemoveFromPhraseIx(iPos.iPhraseElement,1); current.iParaAttribs->iPhraseCount--; + if (current.iParaAttribs->PhraseCount()<=1) + { + OstTrace0( TRACE_DUMP, DUP1_CRICHTEXTINDEX_SPLITPARAGRAPHATPASTEPOSL, "Invariant" ); + } __ASSERT_DEBUG(current.iParaAttribs->PhraseCount()>1,User::Invariant()); } } + OstTrace1( TRACE_DUMP, DUP2_CRICHTEXTINDEX_SPLITPARAGRAPHATPASTEPOSL, "Leave code=%d", ret ); User::Leave(ret); } if (insertPendingPos != EInsertCharFormatReset) @@ -490,8 +555,16 @@ RebalanceIndex(); // ASSERT: A valid picture header, referencing a valid picture has been inserted. + if (!aPicHdr.iPicture.IsPtr() || aPicHdr.iPicture.AsPtr()==NULL) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXTINDEX_INSERTL, "EInsertNullPicHdrData" ); + } __ASSERT_ALWAYS(aPicHdr.iPicture.IsPtr() && aPicHdr.iPicture.AsPtr()!=NULL,Panic(EInsertNullPicHdrData)); // ASSERT: The current insert pos hasn't been changed without cancelling SetInsertCharFormat. + if ((iPendingNewPhrasePos!=EInsertCharFormatReset) && (aPos!=iPendingNewPhrasePos)) + { + OstTrace0( TRACE_FATAL, DUP2_CRICHTEXTINDEX_INSERTL, "ESetInsertCharFormatIntegrityErr" ); + } __ASSERT_ALWAYS((iPendingNewPhrasePos==EInsertCharFormatReset) || (aPos==iPendingNewPhrasePos), Panic(ESetInsertCharFormatIntegrityErr)); if (iPendingNewPhrasePos!=EInsertCharFormatReset) @@ -516,6 +589,10 @@ } GetCurrentRecords(current); // ASSERT: The reclaim succeeded. We must always end up with a PhraseIx-not constant char format. + if (current.iPhrase==NULL) + { + OstTrace0( TRACE_DUMP, DUP3_CRICHTEXTINDEX_INSERTL, "EReclaimShareError" ); + } __ASSERT_DEBUG(current.iPhrase!=NULL,Panic(EReclaimShareError)); TRAPD(ret1, SplitPhraseL(aPos)); // Phrase may not be split if at boundary. @@ -771,6 +848,10 @@ CancelInsertCharFormat(); ScanToPosition(aPos,EScanToPositionAbsolute,&iLastUsed); + if (iPos.iParaElementOffset!=0) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_DELETEPARAGRAPH, "EDeleteParagraphInvalidStartValue" ); + } __ASSERT_DEBUG(iPos.iParaElementOffset==0,Panic(EDeleteParagraphInvalidStartValue)); TIndexDeleteInfo info; @@ -813,6 +894,10 @@ TInt startParaLength=current.iParaEntry->iLength; TInt lengthRemainingInPara=startParaLength-iPos.iParaElementOffset; + if (aLength>=lengthRemainingInPara) + { + OstTrace0( TRACE_FATAL, CRICHTEXTINDEX_DELETEFROMPARAGRAPH, "EDeleteFromParagraphInvalidRange" ); + } __ASSERT_ALWAYS(aLengthIsShared()) + { + OstTrace0( TRACE_FATAL, CRICHTEXTINDEX_REBALANCEINDEX, "EParaAttribsNotInSharedList" ); + } __ASSERT_ALWAYS(iRollbackParaAttribsHandle->IsShared(),Panic(EParaAttribsNotInSharedList)); iRollbackParaAttribsHandle->Release(); iRollbackParaAttribsHandle=NULL; @@ -1154,6 +1260,10 @@ */ TBool CRichTextIndex::DeleteInsertCharFormat() { + if (!InsertCharFormatIsActive()) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_DELETEINSERTCHARFORMAT, "Invariant" ); + } __ASSERT_DEBUG(InsertCharFormatIsActive(), User::Invariant()); ScanToPosition(iPendingNewPhrasePos,EScanToPositionMatchLeft); TCurrentIndexRecords current; @@ -1455,6 +1565,10 @@ void CRichTextIndex::SplitPhraseL(TInt aPhrase,TInt anOffset,RPhraseAttribsEntry& aPhraseAttribs,CParaAttribs& aParaAttribs) { + if (anOffset<=0 || anOffset>=aPhraseAttribs.Length()) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_SPLITPHRASEL, "Invariant" ); + } __ASSERT_DEBUG(anOffset>0 && anOffsetiPhraseCount!=1) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_SHARE, "Invariant" ); + } __ASSERT_DEBUG(paraAttribs->iPhraseCount==1,User::Invariant()); RPhraseAttribsEntry& phraseAttribs=iPhraseIx->At(aPhrase); + if (phraseAttribs.IsPicturePhrase()) + { + OstTrace0( TRACE_DUMP, DUP1_CRICHTEXTINDEX_SHARE, "Invariant" ); + } __ASSERT_DEBUG(!phraseAttribs.IsPicturePhrase(),User::Invariant()); CParaAttribs* share=GetParaAttribs(paraAttribs,*phraseAttribs.CharFormat()); @@ -1522,6 +1644,10 @@ TInt phrase=iPos.iPhraseElement; TInt base=iPos.iParaBasePhraseElement; + if (phrase=base+paraAttribs->iPhraseCount) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_APPLYCHARFORMATROLLBACK, "Invariant" ); + } __ASSERT_DEBUG(phrase>=base && phraseiPhraseCount,User::Invariant()); if (phraseiPhraseCount-1) // merge to the right MergePhrases(phrase+1,iPhraseIx->At(phrase+1),*paraAttribs); @@ -1537,6 +1663,10 @@ // aPos to aPos+(aLength-1). // { + if (aLength<0) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_APPLYCHARFORMATL, "Invariant" ); + } __ASSERT_DEBUG(aLength>=0,User::Invariant()); __TEST_INVARIANT; @@ -1590,6 +1720,10 @@ do { + if (phrase>=iPos.iParaBasePhraseElement+paraAttribs->iPhraseCount) + { + OstTrace0( TRACE_DUMP, DUP1_CRICHTEXTINDEX_APPLYCHARFORMATL, "Invariant" ); + } __ASSERT_DEBUG(phraseiPhraseCount,User::Invariant()); // RPhraseAttribsEntry* phraseAttribs=&iPhraseIx->At(phrase); @@ -1627,6 +1761,10 @@ phraseAttribs=&iPhraseIx->At(phrase); // SplitPhraseL modifies the index array, we must do this! } + if (phraseAttribs->Length()!=len) + { + OstTrace0( TRACE_DUMP, DUP2_CRICHTEXTINDEX_APPLYCHARFORMATL, "Invariant" ); + } __ASSERT_DEBUG(phraseAttribs->Length()==len,User::Invariant()); // STEP 2.3 Change the format of the current phrase layer @@ -1647,6 +1785,10 @@ charsToFormat-=len; } while (charsToFormat); + if (phrase!=iPos.iParaBasePhraseElement+paraAttribs->iPhraseCount && aLength!=0) + { + OstTrace0( TRACE_DUMP, DUP3_CRICHTEXTINDEX_APPLYCHARFORMATL, "Invariant" ); + } __ASSERT_DEBUG(phrase==iPos.iParaBasePhraseElement+paraAttribs->iPhraseCount || aLength==0,User::Invariant()); // STEP 3 Reduce the paragraph attributes back to canonical form @@ -1672,9 +1814,25 @@ iPos.iParaBasePhraseElement=phrase; #ifdef _DEBUG ScanToPosition(aPos,EScanToPositionAbsolute); + if (iPos.iDocPos!=aPos) + { + OstTrace0( TRACE_DUMP, DUP4_CRICHTEXTINDEX_APPLYCHARFORMATL, "Invariant" ); + } __ASSERT_DEBUG(iPos.iDocPos==aPos,User::Invariant()); + if (iPos.iPhraseElement!=phrase) + { + OstTrace0( TRACE_DUMP, DUP5_CRICHTEXTINDEX_APPLYCHARFORMATL, "Invariant" ); + } __ASSERT_DEBUG(iPos.iPhraseElement==phrase,User::Invariant()); + if (iPos.iParaElementOffset!=paraOffset) + { + OstTrace0( TRACE_DUMP, DUP6_CRICHTEXTINDEX_APPLYCHARFORMATL, "Invariant" ); + } __ASSERT_DEBUG(iPos.iParaElementOffset==paraOffset,User::Invariant()); + if (iPos.iPhraseElementOffset!=phraseOffset) + { + OstTrace0( TRACE_DUMP, DUP7_CRICHTEXTINDEX_APPLYCHARFORMATL, "Invariant" ); + } __ASSERT_DEBUG(iPos.iPhraseElementOffset==phraseOffset,User::Invariant()); __TEST_INVARIANT; #endif @@ -2227,6 +2385,10 @@ else {// No match, so piece together new shared paraAttribs and add to shared para list sourceParaAttribs->iRefCount=1; + if (sourcePhrase->IsPicturePhrase()) + { + OstTrace0( TRACE_FATAL, CRICHTEXTINDEX_GETPARAATTRIBS, "EReleasCharFormatLayerOwnershipCalledOnPicturePhrase" ); + } __ASSERT_ALWAYS(!sourcePhrase->IsPicturePhrase(),Panic(EReleasCharFormatLayerOwnershipCalledOnPicturePhrase)); sourceParaAttribs->iCharFormat=sourcePhrase->ReleaseCharFormatLayerOwnership(); sourcePhrase->Discard(); @@ -2356,6 +2518,10 @@ } else { + if (iPos.iParaBasePhraseElement!=phraseElement) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_SCANTOPOSITION, "EDebug" ); + } __ASSERT_DEBUG(iPos.iParaBasePhraseElement==phraseElement,Panic(EDebug)); } iPos.iPhraseElement=phraseElement; @@ -2460,6 +2626,10 @@ return; // aSplitPos on a phrase boundary; urgo no split. TCurrentIndexRecords current; GetCurrentRecords(current); // ASSERT: This function set can only be called on CParaAttribs that specific char format. + if (current.iPhrase==NULL) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXTINDEX_SPLITPHRASEL, "ESplitPhraseCalledOnSharedPara" ); + } __ASSERT_ALWAYS(current.iPhrase!=NULL,Panic(ESplitPhraseCalledOnSharedPara)); DoSplitPhraseL(*current.iPhrase,iPos.iPhraseElementOffset,current.iParaAttribs); } @@ -2489,6 +2659,10 @@ // { // ASSERT: Cannot split a picture phrase. + if (aCurrentPhrase.IsPicturePhrase()) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_DOSPLITPHRASEL, "ESplitPhraseCalledOnPicturePhrase" ); + } __ASSERT_DEBUG(!aCurrentPhrase.IsPicturePhrase(),Panic(ESplitPhraseCalledOnPicturePhrase)); CCharFormatLayer* layer=CCharFormatLayer::NewCopyBaseL(aCurrentPhrase.CharFormat()); CleanupStack::PushL(layer); @@ -2520,6 +2694,10 @@ return ETrue; // TInt sharedParaCount=SharedParaCount(this); + if (sharedParaCount<1 && (sharedParaCount!=0 || phraseCount<=0)) + { + OstTrace0( TRACE_FATAL, CRICHTEXTINDEX_HASMARKUPDATA, "ERichTextIndexIntegrityErr" ); + } __ASSERT_ALWAYS(sharedParaCount>=1 || (sharedParaCount==0 && phraseCount>0),Panic(ERichTextIndexIntegrityErr)); if (sharedParaCount>1) return ETrue; @@ -2592,6 +2770,10 @@ if (sParaAttribs->IsShared()) { tParaAttribs=map->Item(sParaAttribs); + if (tParaAttribs==NULL) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_APPENDPARAINDEXL, "ESharedFormatsMapIntegrityError" ); + } __ASSERT_DEBUG(tParaAttribs!=NULL,Panic(ESharedFormatsMapIntegrityError)); tParaAttribs->iRefCount++; } @@ -2625,6 +2807,10 @@ CParaAttribs* currentSharedPara; while ((currentSharedPara=iterator++)!=NULL) { + if (!currentSharedPara->IsShared()) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_APPENDSHAREDFORMATSL, "Invariant" ); + } __ASSERT_DEBUG(currentSharedPara->IsShared(),User::Invariant()); CParaFormatLayer* sPl=currentSharedPara->iParaFormat; @@ -2689,10 +2875,18 @@ { TInt jj=pictureMap->At(kk); TPictureHeader* sHeader=(*aSource->iPhraseIx)[jj].PictureHeaderPtr(); + if (!sHeader) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_APPENDPHRASEINDEXL, "Invariant" ); + } __ASSERT_DEBUG(sHeader,User::Invariant()); if (sHeader->iPicture.IsPtr()) { // transfer picture to us TPictureHeader* tHeader=(*iPhraseIx)[jj+originalPhraseCount].PictureHeaderPtr(); + if (!tHeader) + { + OstTrace0( TRACE_DUMP, DUP1_CRICHTEXTINDEX_APPENDPHRASEINDEXL, "Invariant" ); + } __ASSERT_DEBUG(tHeader,User::Invariant()); tHeader->iPicture=sHeader->iPicture.AsPtr(); sHeader->iPicture=NULL; @@ -2842,6 +3036,10 @@ { #ifdef _DEBUG // ASSERT: iLength is +ve (applying to character formatting, or is set to indicate a picture phrase. + if (iLength<0 && !IsPicturePhrase()) + { + OstTrace0( TRACE_DUMP, RPHRASEATTRIBSENTRY_DBGTESTINVARIANT, "Invariant" ); + } __ASSERT_DEBUG(iLength>=0 || IsPicturePhrase(),User::Invariant()); #endif } @@ -2925,6 +3123,11 @@ { // ASSERT: The length of a picture phrase may only be altered by deleting it, in which case // the only adjustment made will be an increment of -1 (EPictureIndicator). + if (IsPicturePhrase() && (!IsPicturePhrase() || aIncrement!=EPictureIndicator) + && (!IsPicturePhrase() || aIncrement!=0) ) + { + OstTrace0( TRACE_DUMP, RPHRASEATTRIBSENTRY_ADJUSTLENGTH, "EModifiedPicturePhraseLength" ); + } __ASSERT_DEBUG(!IsPicturePhrase() || (IsPicturePhrase() && aIncrement==EPictureIndicator) || (IsPicturePhrase() && aIncrement==0) ,Panic(EModifiedPicturePhraseLength)); diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/stext/TXTIXSTR.CPP --- a/textrendering/texthandling/stext/TXTIXSTR.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/texthandling/stext/TXTIXSTR.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -27,6 +27,11 @@ #include "TXTINDEX.H" #include "TXTSTD.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TXTIXSTRTraces.h" +#endif + #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include "TXTFMLYR_INTERNAL.H" #endif @@ -142,6 +147,10 @@ { RPhraseAttribsEntry& phrase=*current.iPhrase; TPictureHeader* hdr=phrase.PictureHeaderPtr(); + if (!hdr) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_STOREPICTURESL, "ERichTextStorePictureIntegrityError" ); + } __ASSERT_DEBUG(hdr,Panic(ERichTextStorePictureIntegrityError)); TBool pictureInMemory=(hdr->iPicture.IsPtr() && hdr->iPicture.AsPtr()); if (pictureInMemory) @@ -194,12 +203,20 @@ if (phrase.IsPicturePhrase()) { TPictureHeader* hdr=phrase.PictureHeaderPtr(); + if (!hdr) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_DETACHFROMSTOREL, "ERichTextStorePictureIntegrityError" ); + } __ASSERT_DEBUG(hdr,Panic(ERichTextStorePictureIntegrityError)); // if (hdr->iPicture.IsId()) { TRAPD(r, phrase.PictureHandleL(iText.PictureFactory(),iText.StoreResolver(),iPos.iDocPos,MLayDoc::EForceLoadTrue)); // swizzles + if (r!=KErrNone && !hdr->iPicture.IsId()) + { + OstTrace0( TRACE_DUMP, DUP1_CRICHTEXTINDEX_DETACHFROMSTOREL, "ERichTextStorePictureIntegrityError" ); + } __ASSERT_DEBUG(r==KErrNone || hdr->iPicture.IsId(),Panic(ERichTextStorePictureIntegrityError)); if (r==KErrNotSupported) // we don't recognise the picture type { @@ -207,10 +224,16 @@ currentPos+=CurrentPhraseLength()-offsetIntoUnit; continue; } + + OstTrace1( TRACE_FATAL, DUP3_CRICHTEXTINDEX_DETACHFROMSTOREL, "Leave code=%d", r ); User::LeaveIfError(r); } // // recurse the call to detach the picture from the store + if (!hdr->iPicture.IsPtr()) + { + OstTrace0( TRACE_DUMP, DUP2_CRICHTEXTINDEX_DETACHFROMSTOREL, "ERichTextStorePictureIntegrityError" ); + } __ASSERT_DEBUG(hdr->iPicture.IsPtr(),Panic(ERichTextStorePictureIntegrityError)); hdr->iPicture->DetachFromStoreL(aDegree); } @@ -257,6 +280,10 @@ // on the specified global format layers. // { + if (iParaIx->Count()!=1 || (*iParaIx)[0].iLength!=1) + { + OstTrace0( TRACE_FATAL, CRICHTEXTINDEX_INTERNALIZEL, "ERtIndexInternalizeCalledOnNonEmptySource" ); + } __ASSERT_ALWAYS(iParaIx->Count()==1 && (*iParaIx)[0].iLength==1,Panic(ERtIndexInternalizeCalledOnNonEmptySource)); TRtPasteContext context(NULL,aGlobalParaLayer,aGlobalCharLayer,aStyleList); InternalizeRtiHeaderL(aStream,context); @@ -295,6 +322,10 @@ } else { + if (phraseCount<=1) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_GENERATEALLPHRASELINKSL, "EDebug" ); + } __ASSERT_DEBUG(phraseCount>1,Panic(EDebug)); // If the phrase count is too great the CParaAttribs object is corrupt. @@ -395,7 +426,15 @@ // { CStyleList* list = iText.StyleList(); + if (!list) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_EXTERNALIZEREFERENCEDSTYLESL, "EStyleClipboardIntegrityError" ); + } __ASSERT_DEBUG(list,Panic(EStyleClipboardIntegrityError)); + if (aStart.iParaElement > aEnd.iParaElement) + { + OstTrace0( TRACE_DUMP, DUP1_CRICHTEXTINDEX_EXTERNALIZEREFERENCEDSTYLESL, "EStyleClipboardIntegrityError" ); + } __ASSERT_DEBUG(aStart.iParaElement <= aEnd.iParaElement,Panic(EStyleClipboardIntegrityError)); TUint8 numStyles = 0; @@ -516,6 +555,10 @@ TInt index=iText.StyleList()->IndexByPtr(STATIC_CAST(const CParaFormatLayer*,para->iParaFormat->SenseBase())); if (index!=KErrNotFound) { + if (index>=aBuf.Length()) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_MARKSTYLEREGISTER, "EStyleClipboardIntegrityError" ); + } __ASSERT_DEBUG(index(TInt)KMaxTUint8) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_EXTERNALIZEITEMSPRESENTINREGISTERL, "ESharedParaCountStreamOverflow" ); + } __ASSERT_DEBUG(aSharedCount<=(TInt)KMaxTUint8,Panic(ESharedParaCountStreamOverflow)); aStream.WriteUint8L(aSharedCount); CParaAttribs* currentSharedPara=NULL; @@ -557,6 +604,10 @@ // Externalize each object from the paragraph style list that has a corresponding mark in the register aBuf. // { + if (aRefStyleCount > (TInt)KMaxTUint8) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_EXTERNALIZEITEMSPRESENTINSTYLEREGISTERL, "EStyleClipboardIntegrityError" ); + } __ASSERT_DEBUG(aRefStyleCount <= (TInt)KMaxTUint8,Panic(EStyleClipboardIntegrityError)); aStream.WriteUint8L(aRefStyleCount); TInt count=aBuf.Length(); @@ -628,6 +679,10 @@ phraseCount=(aEnd.iPhraseElement-aStart.iPhraseElement)+1; // copied text contained within 1 para else phraseCount=(aEnd.iPhraseElement-aEnd.iParaBasePhraseElement)+1; + if (phraseCount>lastParaAttribs->iPhraseCount) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_EXTERNALIZEPARAIXL, "ERtExternalizeParaIx" ); + } __ASSERT_DEBUG(phraseCount<=lastParaAttribs->iPhraseCount,Panic(ERtExternalizeParaIx)); aStream.WriteInt32L(phraseCount); if (refNo>0) @@ -923,6 +978,10 @@ TInt match=1; while ((currentSharedPara=iterator++)!=NULL && aOrdinal!=match) match++; + if (currentSharedPara==NULL) + { + OstTrace0( TRACE_FATAL, CRICHTEXTINDEX_SHAREDPARAATTRIBS, "EEndOfSharedParaListEncountered" ); + } __ASSERT_ALWAYS(currentSharedPara!=NULL,Panic(EEndOfSharedParaListEncountered)); return currentSharedPara; } @@ -1310,7 +1369,11 @@ characterCount+=para.iLength; } CleanupStack::Pop(); // firstParaVirtualPhrase -// ASSERT: At this point we have pasted all paras that were in the stream. +// ASSERT: At this point we have pasted all paras that were in the stream. + if (aContext.iParasPasted!=aCompleteParaCount) + { + OstTrace0( TRACE_DUMP, CRICHTEXTINDEX_PASTEPARAIXL, "EPasteParaIxError" ); + } __ASSERT_DEBUG(aContext.iParasPasted==aCompleteParaCount,Panic(EPasteParaIxError)); return characterCount; } @@ -1334,6 +1397,10 @@ CleanupStack::Pop(2); // layer & specificParaAttribs // para.iParaAttribs=specificParaAttribs; + if (para.iParaAttribs==NULL) + { + OstTrace0( TRACE_FATAL, CRICHTEXTINDEX_DOPASTEFIRSTINTOPARAL, "ESharedFormatsMapIntegrityError" ); + } __ASSERT_ALWAYS(para.iParaAttribs!=NULL,Panic(ESharedFormatsMapIntegrityError)); } else @@ -1359,6 +1426,10 @@ if (refNo>0) {// Link to para attribs in shared list & up its reference count para.iParaAttribs=aMap.Item(refNo); + if (para.iParaAttribs==NULL) + { + OstTrace0( TRACE_FATAL, CRICHTEXTINDEX_DOPASTEINTOPARAL, "ESharedFormatsMapIntegrityError" ); + } __ASSERT_ALWAYS(para.iParaAttribs!=NULL,Panic(ESharedFormatsMapIntegrityError)); para.iParaAttribs->iRefCount++; } @@ -1391,6 +1462,10 @@ // { // ASSERT: Having pasted the paraIx, the para containig pastePos has had the containing phrase split at that point. + if (aContext.iPastePos.iPhraseElementOffset!=0) + { + OstTrace0( TRACE_FATAL, CRICHTEXTINDEX_PASTEPHRASEIXL, "EPastePhraseIxErr" ); + } __ASSERT_ALWAYS(aContext.iPastePos.iPhraseElementOffset==0,Panic(EPastePhraseIxErr)); TInt offset=0; @@ -1422,6 +1497,10 @@ TBool isPicture=(TBool)aStream.ReadUint8L(); TInt phraseLength=aStream.ReadInt32L(); + if (!(isPicture && phraseLength==1 || !isPicture)) + { + OstTrace0( TRACE_FATAL, CRICHTEXTINDEX_DOPASTEPHRASEL, "KErrCorrupt" ); + } __ASSERT_ALWAYS(isPicture && phraseLength==1 || !isPicture,User::Leave(KErrCorrupt)); CCharFormatLayer* charLayer=CCharFormatLayer::NewL(aStream); @@ -1464,7 +1543,10 @@ picPhrase->iCharFormat=NULL; CleanupStack::PopAndDestroy(picPhrase); if (r!=KErrNotSupported) - User::Leave(r); + { + OstTrace1( TRACE_FATAL, DUP2_CRICHTEXTINDEX_DOPASTEPHRASEL, "Leave code=%d", r ); + User::Leave(r); + } } } } @@ -1489,6 +1571,7 @@ // { NormalizeSharedList(); + OstTrace1( TRACE_FATAL, CRICHTEXTINDEX_RBPASTESHAREDFORMATSL, "Leave code=%d", aRet ); User::Leave(aRet); } @@ -1543,6 +1626,7 @@ (*iParaIx)[aPos.iParaElement].iParaAttribs=iRollbackParaAttribsHandle; iRollbackParaAttribsHandle=NULL; } + OstTrace1( TRACE_FATAL, CRICHTEXTINDEX_RBPASTEPARAIXL, "Leave code=%d", aRet ); User::Leave(aRet); } @@ -1570,5 +1654,6 @@ // { RbRemoveInsertedPhraseAttribsEntries(aPos.iPhraseElement,aPhraseCount); + OstTrace1( TRACE_FATAL, CRICHTEXTINDEX_RBPASTEPHRASEIXL, "Leave code=%d", aRet ); User::Leave(aRet); } diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/stext/TXTRICH.CPP --- a/textrendering/texthandling/stext/TXTRICH.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/texthandling/stext/TXTRICH.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -26,6 +26,11 @@ #include "ParseLst.h" #include "TXTCLIPBOARD.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TXTRICHTraces.h" +#endif + #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include "TXTETEXT_INTERNAL.H" #include "TXTRICH_INTERNAL.H" @@ -37,7 +42,15 @@ { #ifdef _DEBUG // ASSERT: The global format layers are never null. + if (iGlobalParaFormatLayer == NULL) + { + OstTrace0( TRACE_DUMP, CRICHTEXT_DBGTESTINVARIANT, "Invariant" ); + } __ASSERT_DEBUG(iGlobalParaFormatLayer != NULL, User::Invariant()); + if (iGlobalCharFormatLayer == NULL) + { + OstTrace0( TRACE_DUMP, DUP1_CRICHTEXT_DBGTESTINVARIANT, "Invariant" ); + } __ASSERT_DEBUG(iGlobalCharFormatLayer != NULL, User::Invariant()); if (IndexPresent()) { @@ -49,10 +62,20 @@ TParaAttribsEntry entry = (*iIndex->iParaIx)[offset]; cumulativeParaLength += entry.iLength; } + if (cumulativeParaLength != (DocumentLength() + 1)) + { + OstTrace0( TRACE_DUMP, DUP2_CRICHTEXT_DBGTESTINVARIANT, "Invariant" ); + } __ASSERT_DEBUG(cumulativeParaLength == (DocumentLength() + 1), User::Invariant()); } // Change here for defect INC005336. // This defect is present when the assertion below fails. + if ((iParserData != NULL) && + (iParserData->HaveRange()) && + (iParserData->EndParse() > DocumentLength())) + { + OstTrace0( TRACE_DUMP, DUP3_CRICHTEXT_DBGTESTINVARIANT, "Invariant" ); + } __ASSERT_DEBUG( (iParserData == NULL) || \ (!iParserData->HaveRange()) || \ (iParserData->EndParse() <= DocumentLength()), User::Invariant()); @@ -80,7 +103,15 @@ @return The rich text object. */ { // Create new rich text containing just a single end-of-document character. + if (aGlobalParaLayer == NULL) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_NEWL, "ENullFormatLayerHandle" ); + } __ASSERT_ALWAYS(aGlobalParaLayer != NULL, Panic(ENullFormatLayerHandle)); + if (aGlobalCharLayer == NULL) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_NEWL, "ENullFormatLayerHandle" ); + } __ASSERT_ALWAYS(aGlobalCharLayer != NULL, Panic(ENullFormatLayerHandle)); CRichText* self = new(ELeave) CRichText(aGlobalParaLayer, aGlobalCharLayer); @@ -122,7 +153,15 @@ used internally for storing paragraph attributes. Default = EMultiPara. @return The new rich text object. */ { + if (aGlobalParaLayer == NULL) + { + OstTrace0( TRACE_FATAL, DUP2_CRICHTEXT_NEWL, "ENullFormatLayerHandle" ); + } __ASSERT_ALWAYS(aGlobalParaLayer != NULL, Panic(ENullFormatLayerHandle)); + if (aGlobalCharLayer == NULL) + { + OstTrace0( TRACE_FATAL, DUP3_CRICHTEXT_NEWL, "ENullFormatLayerHandle" ); + } __ASSERT_ALWAYS(aGlobalCharLayer != NULL, Panic(ENullFormatLayerHandle)); CRichText* self = new(ELeave) CRichText(aGlobalParaLayer, aGlobalCharLayer, CONST_CAST(CStyleList*, &aStyleList)); @@ -159,7 +198,15 @@ which should rarely need to be changed. @return The new rich text object. */ { + if (aGlobalParaLayer == NULL) + { + OstTrace0( TRACE_FATAL, DUP4_CRICHTEXT_NEWL, "ENullFormatLayerHandle" ); + } __ASSERT_ALWAYS(aGlobalParaLayer != NULL, Panic(ENullFormatLayerHandle)); + if (aGlobalCharLayer == NULL) + { + OstTrace0( TRACE_FATAL, DUP5_CRICHTEXT_NEWL, "ENullFormatLayerHandle" ); + } __ASSERT_ALWAYS(aGlobalCharLayer != NULL, Panic(ENullFormatLayerHandle)); CRichText* self = new(ELeave) CRichText(aGlobalParaLayer, aGlobalCharLayer); @@ -205,8 +252,20 @@ { // Restore a new rich text from the specified stream, that uses the specified global layers, and the // specified picture header factory and store, if this rich text supports pictures. + if (!aPictureFactory && aStoreResolver) + { + OstTrace0( TRACE_FATAL, DUP6_CRICHTEXT_NEWL, "EInvalidPictureFactorySettings" ); + } __ASSERT_ALWAYS(!(!aPictureFactory && aStoreResolver), Panic(EInvalidPictureFactorySettings)); + if (aGlobalParaLayer == NULL) + { + OstTrace0( TRACE_FATAL, DUP7_CRICHTEXT_NEWL, "ENullFormatLayerHandle" ); + } __ASSERT_ALWAYS(aGlobalParaLayer != NULL, Panic(ENullFormatLayerHandle)); + if (aGlobalCharLayer == NULL) + { + OstTrace0( TRACE_FATAL, DUP8_CRICHTEXT_NEWL, "ENullFormatLayerHandle" ); + } __ASSERT_ALWAYS(aGlobalCharLayer != NULL, Panic(ENullFormatLayerHandle)); CRichText* self = new(ELeave) CRichText(aGlobalParaLayer, aGlobalCharLayer); @@ -383,8 +442,20 @@ __TEST_INVARIANT; TInt documentLength = DocumentLength(); + if (aPos < 0 || aPos > documentLength) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_DOCOPYTOSTOREL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= documentLength,Panic(ECharPosBeyondDocument)); + if (aLength < 0) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_DOCOPYTOSTOREL, "ECopyToClipboardNegativeLength" ); + } __ASSERT_ALWAYS(aLength >= 0,Panic(ECopyToClipboardNegativeLength)); + if (aPos + aLength > documentLength) + { + OstTrace0( TRACE_FATAL, DUP2_CRICHTEXT_DOCOPYTOSTOREL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + aLength <= documentLength,Panic(ECharPosBeyondDocument)); if (aLength == 0) @@ -490,6 +561,10 @@ // { __TEST_INVARIANT; + if (aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_DOPASTERTFROMSTOREL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); TUid type = KClipboardUidTypeRichTextWithStyles; @@ -532,12 +607,17 @@ CreateAndGenerateMarkupComponentL(); // create the index if it does not already exist TStreamId id = aDictionary.At(KClipboardUidTypePlainText); // ASSERT: We have rich text, so the plain text stream must exist. + if (id == KNullStreamId) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_PASTERICHTEXTFROMSTOREL, "EClipboardIntegrity" ); + } __ASSERT_ALWAYS(id != KNullStreamId,Panic(EClipboardIntegrity)); TInt consumed = CPlainText::DoPasteFromStoreL(aStore, id, aPos); TRAPD(ret, CompletePasteRichTextFromStoreL(aStore, aRichTextStreamId, aPos, aStylePasteMode)); if (ret != KErrNone) { CPlainText::Delete(aPos,consumed); + OstTrace1( TRACE_FATAL, DUP1_CRICHTEXT_PASTERICHTEXTFROMSTOREL, "Leave code=%d", ret ); User::Leave(ret); } return consumed; @@ -625,7 +705,15 @@ @param aBuf The descriptor to insert. */ { __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_INSERTL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); + if (aChar == EPictureCharacter) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_INSERTL, "ENonOverloadedInsertCalledWithPictureCharacter" ); + } __ASSERT_ALWAYS(aChar!= EPictureCharacter, Panic(ENonOverloadedInsertCalledWithPictureCharacter)); if (aChar < 0x10000) @@ -669,6 +757,10 @@ // { __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_RTINSERTL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); int length = aBuf.Length(); @@ -708,6 +800,10 @@ and information about the picture. */ { __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, DUP2_CRICHTEXT_INSERTL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); CleanupStack::PushL(aHeader.iPicture); @@ -758,8 +854,20 @@ // Delete commences at, and includes, character position aPos. __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_DELETEL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); + if (aLength < 0) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_DELETEL, "EDebugDeleteZeroLength" ); + } __ASSERT_ALWAYS(aLength >= 0, Panic(EDebugDeleteZeroLength)); + if (aPos + (aLength - 1) > DocumentLength()) + { + OstTrace0( TRACE_FATAL, DUP2_CRICHTEXT_DELETEL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + (aLength - 1) <= DocumentLength(), Panic(ECharPosBeyondDocument)); TBool requireMerge = EFalse; @@ -797,7 +905,15 @@ // Store the length of the text before we commence with deletions. TInt initialDocLen=DocumentLength(); + if (aPos < 0 || aPos > initialDocLen) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_DELETEPARAGRAPH, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= initialDocLen, Panic(ECharPosBeyondDocument)); + if (aPos + aLength > initialDocLen + 1) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_DELETEPARAGRAPH, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + aLength <= initialDocLen + 1, Panic(ECharPosBeyondDocument)); if (aLength <= 0) @@ -847,7 +963,15 @@ // Guaranteed not to leave if this pre-condition holds true. __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_DELETEFROMPARAGRAPH, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); + if (aPos + (aLength - 1) > DocumentLength()) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_DELETEFROMPARAGRAPH, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + (aLength - 1) <= DocumentLength(), Panic(ECharPosBeyondDocument)); if (aLength <= 0) @@ -934,6 +1058,10 @@ // of this paragraph. If aPos is already on a paragraph boundary then do nothing. // __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_PARAGRAPHNUMBERFORPOS, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); if (IndexPresent()) @@ -972,6 +1100,10 @@ void CRichText::SetExtendedInsertCharFormatL(const TCharFormatX& aFormat, const TCharFormatXMask& aMask, TInt aPos) { + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_SETEXTENDEDINSERTCHARFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); CreateAndGenerateMarkupComponentL(); CRichTextIndex* index = iIndex.AsPtr(); @@ -1054,8 +1186,20 @@ // immediately inserted. // __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_DELSETINSERTCHARFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); + if (aLength < 0) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_DELSETINSERTCHARFORMATL, "EDebugDeleteZeroLength" ); + } __ASSERT_ALWAYS(aLength >= 0, Panic(EDebugDeleteZeroLength)); + if (aPos + (aLength - 1) > DocumentLength()) + { + OstTrace0( TRACE_FATAL, DUP2_CRICHTEXT_DELSETINSERTCHARFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + (aLength - 1) <= DocumentLength(), Panic(ECharPosBeyondDocument)); TBool parasMerged = EFalse; @@ -1112,8 +1256,20 @@ // character position aPos to aPos+aLength-1. // __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_APPLYPARAFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); + if (aLength < 0) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_APPLYPARAFORMATL, "EApplyParaFormatNegativeLength" ); + } __ASSERT_ALWAYS(aLength >= 0,Panic(EApplyParaFormatNegativeLength)); + if (aPos + (aLength - 1) > DocumentLength()) + { + OstTrace0( TRACE_FATAL, DUP2_CRICHTEXT_APPLYPARAFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + (aLength - 1) <= DocumentLength(), Panic(ECharPosBeyondDocument)); CreateAndGenerateMarkupComponentL(); @@ -1147,8 +1303,20 @@ __TEST_INVARIANT; TInt document_length = DocumentLength(); + if (aPos < 0) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_APPLYCHARFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0,Panic(ECharPosBeyondDocument)); + if (aLength < 0) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_APPLYCHARFORMATL, "EApplyCharFormatNegativeLength" ); + } __ASSERT_ALWAYS(aLength >= 0,Panic(EApplyCharFormatNegativeLength)); + if (aPos + aLength - 1 > document_length) + { + OstTrace0( TRACE_FATAL, DUP2_CRICHTEXT_APPLYCHARFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + aLength - 1 <= document_length,Panic(ECharPosBeyondDocument)); //If some characters are highlighted AND current position + highlighted txt = document length @@ -1170,8 +1338,20 @@ void CRichText::ApplyExtendedCharFormatL(const TCharFormatX& aFormat,const TCharFormatXMask& aMask,TInt aPos,TInt aLength) { TInt document_length = DocumentLength(); + if (aPos < 0) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_APPLYEXTENDEDCHARFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0,Panic(ECharPosBeyondDocument)); + if (aLength < 0) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_APPLYEXTENDEDCHARFORMATL, "EApplyCharFormatNegativeLength" ); + } __ASSERT_ALWAYS(aLength >= 0,Panic(EApplyCharFormatNegativeLength)); + if (aPos + aLength - 1 > document_length) + { + OstTrace0( TRACE_FATAL, DUP2_CRICHTEXT_APPLYEXTENDEDCHARFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + aLength - 1 <= document_length,Panic(ECharPosBeyondDocument)); DoApplyExtendedCharFormatL(aFormat, aMask, aPos, aLength); @@ -1228,9 +1408,25 @@ // character positions aPos to aPos+aLength-1. // __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_APPLYPARAGRAPHSTYLEL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); + if (aLength < 0) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_APPLYPARAGRAPHSTYLEL, "EApplyParaStyleNegativeLength" ); + } __ASSERT_ALWAYS(aLength >= 0, Panic(EApplyParaStyleNegativeLength)); + if (aPos + (aLength - 1) > DocumentLength()) + { + OstTrace0( TRACE_FATAL, DUP2_CRICHTEXT_APPLYPARAGRAPHSTYLEL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + (aLength - 1) <= DocumentLength(), Panic(ECharPosBeyondDocument)); + if (!StyleListPresent()) + { + OstTrace0( TRACE_FATAL, DUP3_CRICHTEXT_APPLYPARAGRAPHSTYLEL, "ERichTextNotSetForUsingStyles" ); + } __ASSERT_ALWAYS(StyleListPresent(), Panic(ERichTextNotSetForUsingStyles)); CreateAndGenerateMarkupComponentL(); @@ -1262,6 +1458,10 @@ // Update the rich text index following the change of an applied paragraph style. // __TEST_INVARIANT; + if (!StyleListPresent()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_NOTIFYSTYLECHANGEDL, "ERichTextNotSetForUsingStyles" ); + } __ASSERT_ALWAYS(StyleListPresent(), Panic(ERichTextNotSetForUsingStyles)); CreateAndGenerateMarkupComponentL(); @@ -1285,8 +1485,20 @@ indicates whether this object is a style, or just a paragraph format layer. */ { __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_PARAGRAPHSTYLE, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); + if (aLength < 0) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_PARAGRAPHSTYLE, "EParagraphStyleNegativeLength" ); + } __ASSERT_ALWAYS(aLength >= 0,Panic(EParagraphStyleNegativeLength)); + if (aPos + (aLength - 1) > DocumentLength()) + { + OstTrace0( TRACE_FATAL, DUP2_CRICHTEXT_PARAGRAPHSTYLE, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + (aLength - 1) <= DocumentLength(), Panic(ECharPosBeyondDocument)); if (IndexPresent()) @@ -1337,8 +1549,20 @@ __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_REMOVESPECIFICPARAFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); + if (aLength < 0) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_REMOVESPECIFICPARAFORMATL, "ERemoveSpecificParaFormatNegativeLength" ); + } __ASSERT_ALWAYS(aLength >= 0, Panic(ERemoveSpecificParaFormatNegativeLength)); + if (aPos + (aLength - 1) > DocumentLength()) + { + OstTrace0( TRACE_FATAL, DUP2_CRICHTEXT_REMOVESPECIFICPARAFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + (aLength - 1) <= DocumentLength(), Panic(ECharPosBeyondDocument)); if (IndexPresent()) @@ -1370,8 +1594,20 @@ __TEST_INVARIANT; TInt document_length = DocumentLength(); + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_REMOVESPECIFICCHARFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); + if (aLength < 0) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_REMOVESPECIFICCHARFORMATL, "ERemoveSpecificParaFormatNegativeLength" ); + } __ASSERT_ALWAYS(aLength >= 0, Panic(ERemoveSpecificParaFormatNegativeLength)); + if (aPos + (aLength - 1) > DocumentLength()) + { + OstTrace0( TRACE_FATAL, DUP2_CRICHTEXT_REMOVESPECIFICCHARFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + (aLength - 1) <= DocumentLength(), Panic(ECharPosBeyondDocument)); // in correspondance to INC097216, character format removing considers the height of end of document @@ -1420,6 +1656,10 @@ { __TEST_INVARIANT; TInt documentLength = DocumentLength(); + if (aPos < 0 || aPos > documentLength) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_GETTEXTANDEXTENDEDFORMAT, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= documentLength, Panic(ECharPosBeyondDocument)); if (!IndexPresent()) { @@ -1443,6 +1683,10 @@ KErrNone if there is. */ { __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_GETPICTURESIZEINTWIPS, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); if (IndexPresent()) @@ -1472,6 +1716,10 @@ __ETEXT_WATCH(PICTURE_HANDLE); __TEST_INVARIANT; + if (aPos<0 || aPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_PICTUREHANDLEL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); if (IndexPresent()) @@ -1494,6 +1742,10 @@ __ETEXT_WATCH(GET_PARAGRAPH_FORMAT) __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_GETPARAGRAPHFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); if (!IndexPresent()) @@ -1517,6 +1769,10 @@ __ETEXT_WATCH(GET_PARAGRAPH_FORMAT) __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_GETSPECIFICPARAGRAPHFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); aFormat->Reset(); @@ -1555,8 +1811,20 @@ // Application: seeding paragraph formatting dialogs. // __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_GETPARAFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); + if (aLength < 0) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_GETPARAFORMATL, "EGetParaFormatNegativeLength" ); + } __ASSERT_ALWAYS(aLength >= 0, Panic(EGetParaFormatNegativeLength)); + if (aPos + aLength > DocumentLength()) + { + OstTrace0( TRACE_FATAL, DUP2_CRICHTEXT_GETPARAFORMATL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + aLength <= DocumentLength(), Panic(ECharPosBeyondDocument)); if (IndexPresent()) @@ -1603,8 +1871,20 @@ { __TEST_INVARIANT; int document_length = DocumentLength(); + if (aPos < 0 || aPos > document_length) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_GETEXTENDEDCHARFORMAT, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= document_length, Panic(ECharPosBeyondDocument)); + if (aLength < 0) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_GETEXTENDEDCHARFORMAT, "EGetCharFormatNegativeLength" ); + } __ASSERT_ALWAYS(aLength >= 0, Panic(EGetCharFormatNegativeLength)); + if (aPos + aLength - 1 > document_length) + { + OstTrace0( TRACE_FATAL, DUP2_CRICHTEXT_GETEXTENDEDCHARFORMAT, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + aLength - 1 <= document_length, Panic(ECharPosBeyondDocument)); if (IndexPresent()) @@ -1626,6 +1906,10 @@ __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_GETSPECIFICCHARFORMATLEFTRIGHT, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); if (IndexPresent()) @@ -1783,6 +2067,10 @@ if (IndexPresent()) { + if (!aSource.IndexPresent()) + { + OstTrace0( TRACE_DUMP, DUP1_CRICHTEXT_DOAPPENDTAKINGSOLEPICTUREOWNERSHIPL, "Invariant" ); + } __ASSERT_DEBUG(aSource.IndexPresent(), User::Invariant()); // PrepareAppend should have sorted this TGlobalLayerInfoAppend info(GlobalParaFormatLayer(), GlobalCharFormatLayer(), aSource.GlobalParaFormatLayer(), aSource.GlobalCharFormatLayer()); diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/stext/TXTRTFLD.CPP --- a/textrendering/texthandling/stext/TXTRTFLD.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/texthandling/stext/TXTRTFLD.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -25,6 +25,11 @@ #include "TXTINDEX.H" #include "ParseLst.h" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TXTRTFLDTraces.h" +#endif + #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include "TXTETEXT_INTERNAL.H" #endif @@ -47,6 +52,10 @@ position, or a panic occurs. */ { __TEST_INVARIANT; + if (aPos < 0 || aPos > DocumentLength()) + { + OstTrace0( TRACE_DUMP, CRICHTEXT_UPDATEFIELDL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= DocumentLength(), Panic(ECharPosBeyondDocument)); TFindFieldInfo fieldInfo; diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/stext/TXTRTSTR.CPP --- a/textrendering/texthandling/stext/TXTRTSTR.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/texthandling/stext/TXTRTSTR.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -26,6 +26,11 @@ #include "TXTRTPFL.H" #include "ParseLst.h" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TXTRTSTRTraces.h" +#endif + #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include "TXTETEXT_INTERNAL.H" #include "TXTRICH_INTERNAL.H" @@ -402,8 +407,20 @@ __TEST_INVARIANT; TInt documentLength = DocumentLength(); + if (aPos < 0 || aPos > documentLength) + { + OstTrace0( TRACE_FATAL, DUP1_CRICHTEXT_DETACHFROMSTOREL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos >= 0 && aPos <= documentLength,Panic(ECharPosBeyondDocument)); + if (aLength < 0) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_DETACHFROMSTOREL, "ECopyToStreamNegativeLength" ); + } __ASSERT_ALWAYS(aLength >= 0,Panic(ECopyToStreamNegativeLength)); + if (aPos + aLength > documentLength) + { + OstTrace0( TRACE_FATAL, DUP2_CRICHTEXT_DETACHFROMSTOREL, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos + aLength <= documentLength,Panic(ECharPosBeyondDocument)); if (aLength > 0 && IndexPresent()) @@ -436,6 +453,10 @@ the picture is stored in. */ { __TEST_INVARIANT; + if (!aPictureFactory && aStoreResolver) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_SETPICTUREFACTORY, "EInvalidPictureFactorySettings" ); + } __ASSERT_ALWAYS(!(!aPictureFactory && aStoreResolver),Panic(EInvalidPictureFactorySettings)); iPictureFactory=aPictureFactory; @@ -452,6 +473,10 @@ picture header. */ { __TEST_INVARIANT; + if (aPos<0 || aPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_PICTUREHEADER, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); return (IndexPresent()) @@ -470,6 +495,10 @@ @see CRichText::PictureHandleL() */ { __TEST_INVARIANT; + if (aPos<0 || aPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CRICHTEXT_DROPPICTUREOWNERSHIP, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); TPictureHeader* p = IndexPresent()? iIndex->PictureHeaderPtr(aPos) : 0; diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/stext/TXTSCAN.CPP --- a/textrendering/texthandling/stext/TXTSCAN.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/texthandling/stext/TXTSCAN.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -18,6 +18,11 @@ #include "TXTETEXT.H" #include "TXTSTD.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TXTSCANTraces.h" +#endif + EXPORT_C TInt CPlainText::CharPosOfParagraph(TInt& aLength,TInt aParaOffset)const @@ -61,6 +66,10 @@ { __TEST_INVARIANT; + if (aPos<0 || aPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_PARAGRAPHNUMBERFORPOS, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); TUint scanMask=(EScanBackwards|EScanStayIfBoundary|EScanToUnitStart); ScanParas(aPos,scanMask); @@ -93,6 +102,10 @@ { __TEST_INVARIANT; + if (aCurrentPos<0 || aCurrentPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_GETWORDINFO, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aCurrentPos>=0 && aCurrentPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); aStartPos=aLength=aCurrentPos; // First find the start of the word. @@ -112,6 +125,10 @@ scanMask|=EScanPunctuationIsDelimiter; ScanWords(aLength,scanMask); aLength-=aStartPos; + if (aLength+aStartPos>(DocumentLength()+1)) + { + OstTrace0( TRACE_DUMP, DUP2_CPLAINTEXT_GETWORDINFO, "ECharPosBeyondDocument" ); + } __ASSERT_DEBUG(aLength+aStartPos<=(DocumentLength()+1),Panic(ECharPosBeyondDocument)); __TEST_INVARIANT; @@ -128,6 +145,10 @@ paragraph. */ { __TEST_INVARIANT; + if (aPos<0 || aPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_TOPARAGRAPHSTART, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); int skipped = 0; @@ -213,6 +234,10 @@ CPlainText::EScanBackwards. @return The number of characters skipped to reach the new document position. */ { + if (aPos<0 || aPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_SCANWORDS, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); SScanData scanData; InitScanControl(aPos,aScanMask,EUnitIsWord,scanData); @@ -236,6 +261,10 @@ CPlainText::EScanBackwards. @return The number of characters skipped to reach the new document position. */ { + if (aPos<0 || aPos>DocumentLength()) + { + OstTrace0( TRACE_FATAL, CPLAINTEXT_SCANPARAS, "ECharPosBeyondDocument" ); + } __ASSERT_ALWAYS(aPos>=0 && aPos<=DocumentLength(),Panic(ECharPosBeyondDocument)); SScanData scanData; InitScanControl(aPos,aScanMask,EUnitIsParagraph,scanData); diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/stext/TXTSTYLE.CPP --- a/textrendering/texthandling/stext/TXTSTYLE.CPP Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/texthandling/stext/TXTSTYLE.CPP Tue Jul 06 16:23:19 2010 +0300 @@ -24,6 +24,11 @@ #include "TXTFRMAT.H" #include "TXTSTD.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TXTSTYLETraces.h" +#endif + #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS #include "TXTFMLYR_INTERNAL.H" #include "TXTSTYLE_INTERNAL.H" @@ -164,6 +169,11 @@ { TInt index=IndexByPtr(info.iStyleForNextPara); // ASSERT: The style-to-follow is present in the list. + if (!((info.iStyleForNextPara==NULL) || + ((info.iStyleForNextPara) && (index!=KErrNotFound && index>=0 && index=0 && index=iList->Count()) + { + OstTrace0( TRACE_DUMP, DUP3_CSTYLELIST_AT, "EStyleIndexOutOfRange" ); + } __ASSERT_DEBUG(aIndex>=0 && aIndexCount(),Panic(EStyleIndexOutOfRange)); return (*iList)[aIndex]; @@ -257,7 +275,15 @@ EXPORT_C RParagraphStyleInfo& CStyleList::At(TInt aIndex) { + if (!iList) + { + OstTrace0( TRACE_FATAL, DUP2_CSTYLELIST_AT, "EStyleIntegrityError" ); + } __ASSERT_ALWAYS(iList,Panic(EStyleIntegrityError)); + if (aIndex<0 || aIndex>=iList->Count()) + { + OstTrace0( TRACE_DUMP, DUP1_CSTYLELIST_AT, "EStyleIndexOutOfRange" ); + } __ASSERT_DEBUG(aIndex>=0 && aIndexCount(),Panic(EStyleIndexOutOfRange)); return (*iList)[aIndex]; @@ -333,6 +359,10 @@ TInt offset=(set.iStyleForNextPara!=NULL) ? IndexByPtr(style) : -1; + if (!(offset==-1 || (offset>=0 && offset=0 && offset #include "TXTPLAIN.H" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TxtWriterTraces.h" +#endif + static const TText KLineBreak = 0x0A;//Used by TSLBTransaltor class - 0x0A, 0x0D, {0x0D, 0x0A} //character aequences found in the input stream will be translated @@ -99,6 +104,10 @@ */ void TParagraphTextWriter::WriteL(TText aChar) { + if (aChar == 0x0D) + { + OstTrace0( TRACE_DUMP, TPARAGRAPHTEXTWRITER_WRITEL, "Invariant" ); + } __ASSERT_DEBUG(aChar != 0x0D, User::Invariant()); if(aChar == KLineBreak) { @@ -126,6 +135,10 @@ */ void TLineTextWriter::WriteL(TText aChar) { + if (aChar == 0x0D) + { + OstTrace0( TRACE_DUMP, TLINETEXTWRITER_WRITEL, "Invariant" ); + } __ASSERT_DEBUG(aChar != 0x0D, User::Invariant()); TText prevChar = iPrevChar; iPrevChar = aChar; diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/stext/Txtparse.cpp --- a/textrendering/texthandling/stext/Txtparse.cpp Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/texthandling/stext/Txtparse.cpp Tue Jul 06 16:23:19 2010 +0300 @@ -19,6 +19,11 @@ #include "TXTRICH.H" #include "TXTSTD.H" #include "ParseLst.h" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "TxtparseTraces.h" +#endif + // Install and activate a particular parser, app provides instance @@ -38,6 +43,10 @@ EXPORT_C void CRichText::DeactivateParser(MParser* aParser) { CParserList* activeParserList = (CParserList*)Dll::Tls(); + if (!activeParserList) + { + OstTrace0( TRACE_DUMP, CRICHTEXT_DEACTIVATEPARSER, "EParserListNotInitialized" ); + } __ASSERT_DEBUG(activeParserList, Panic(EParserListNotInitialized)); activeParserList->DeactivateParser(aParser); if ((activeParserList->iRefCount == 0) && (activeParserList->iNumberInList == 0)) @@ -80,6 +89,10 @@ // Create ParserLst instance and retain ownership of it but pass address to EText TLS void CRichText::CreateParserETextTLSL() { + if (Dll::Tls() != NULL) + { + OstTrace0( TRACE_DUMP, CRICHTEXT_CREATEPARSERETEXTTLSL, "EParserListAlreadyExists" ); + } __ASSERT_DEBUG(Dll::Tls() == NULL, Panic(EParserListAlreadyExists)); CParserList* activeParserList = new (ELeave) CParserList; CleanupStack::PushL(activeParserList); @@ -107,6 +120,10 @@ EXPORT_C TBool CRichText::ParseText(TInt& aStartOfTags, TInt& aLength, TBool aForceScanAllText) { + if (!iIndex.IsPtr()) + { + OstTrace0( TRACE_DUMP, CRICHTEXT_PARSETEXT, "EParserListTextIndexNotInitialized" ); + } __ASSERT_ALWAYS(iIndex.IsPtr(),Panic(EParserListTextIndexNotInitialized)); TBool foundSomething = EFalse; if (iParserData->iActiveParserList && iParserData->iEditObserver) @@ -133,7 +150,15 @@ TBool success = EFalse; TBuf<1> buf; + if (!iParserData->iActiveParserList) + { + OstTrace0( TRACE_DUMP, CRICHTEXT_DOCURSOROVERTAG, "EParserListNotInitialized" ); + } __ASSERT_DEBUG(iParserData->iActiveParserList, Panic(EParserListNotInitialized)); + if (!iParserData->iEditObserver) + { + OstTrace0( TRACE_DUMP, DUP1_CRICHTEXT_DOCURSOROVERTAG, "EParserListNotActive" ); + } __ASSERT_DEBUG(iParserData->iEditObserver, Panic(EParserListNotActive)); GetExtendedCharFormat(format, varies, aPos, 1); Extract(buf, aPos, 1); diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/traces/OstTraceDefinitions.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/traces/OstTraceDefinitions.h Tue Jul 06 16:23:19 2010 +0300 @@ -0,0 +1,27 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* the class for inline-text format retrieval - in its own header file to prevent low-level +* components dependent on this class from gaining unnecessary (and undesirable) dependencies +* on high-level components +* +*/ + +#ifndef __OSTTRACEDEFINITIONS_H__ +#define __OSTTRACEDEFINITIONS_H__ +// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler +// REMOVE BEFORE CHECK-IN TO VERSION CONTROL +// #define OST_TRACE_COMPILER_IN_USE +#include +#endif diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/traces/fixed_id.definitions --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/traces/fixed_id.definitions Tue Jul 06 16:23:19 2010 +0300 @@ -0,0 +1,261 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* the class for inline-text format retrieval - in its own header file to prevent low-level +* components dependent on this class from gaining unnecessary (and undesirable) dependencies +* on high-level components +* +*/ + +#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt. +[GROUP]TRACE_DUMP=0x89 +[TRACE]TRACE_DUMP[0x89]_TLINETEXTWRITER_WRITEL=0x1cb +[TRACE]TRACE_DUMP[0x89]_TPARAGRAPHTEXTWRITER_WRITEL=0x1ca +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CEDITABLETEXT_CANCELFEPINLINEEDIT=0x13f +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CEDITABLETEXT_COMMITFEPINLINEEDITL=0x13e +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CEDITABLETEXT_STARTFEPINLINEEDITL=0x13a +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CEDITABLETEXT_UPDATEFEPINLINETEXTL=0x13c +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CFORMATLAYER_EXTERNALIZELAYERSRECURSEL=0x18e +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CPARSERLIST_ACTIVATEAPARSERL=0x133 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CPARSERLIST_DEACTIVATEPARSER=0x135 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CPARSERLIST_PARSETHISTEXT=0x138 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CPARSERLIST_TAGFORTHISPARSER=0x139 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CPLAINTEXT_DOCONSTRUCTL=0x141 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CPLAINTEXT_EXPORTASTEXTL=0x143 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_APPENDPARAINDEXL=0x1b3 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_APPENDPHRASEINDEXL=0x1b5 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_APPENDSHAREDFORMATSL=0x1b4 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_APPLYCHARFORMATL=0x1a9 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_APPLYCHARFORMATROLLBACK=0x1a8 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_DBGTESTINVARIANT=0x193 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_DELETEINSERTCHARFORMAT=0x1a4 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_DELETEPARAGRAPH=0x1a1 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_DETACHFROMSTOREL=0x1ba +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_DOSPLITPHRASEL=0x1b2 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_EXTERNALIZEITEMSPRESENTINREGISTERL=0x1c1 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_EXTERNALIZEITEMSPRESENTINSTYLEREGISTERL=0x1c2 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_EXTERNALIZEPARAIXL=0x1c3 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_EXTERNALIZEREFERENCEDSTYLESL=0x1be +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_GENERATEALLPHRASELINKSL=0x1bd +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_GETCURRENTINSERTCHARFORMAT=0x1a2 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_INSERTL=0x19c +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_MARKSTYLEREGISTER=0x1c0 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_PASTEPARAIXL=0x1c4 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_SCANTOPOSITION=0x1b1 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_SHARE=0x1a6 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_SPLITPARAGRAPHATPASTEPOSL=0x19d +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_SPLITPHRASEL=0x1a5 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXTINDEX_STOREPICTURESL=0x1b9 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXT_CREATEPARSERETEXTTLSL=0x18a +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXT_DBGTESTINVARIANT=0x17b +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXT_DEACTIVATEPARSER=0x189 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXT_DOCURSOROVERTAG=0x18c +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXT_PARSETEXT=0x18b +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CRICHTEXT_UPDATEFIELDL=0x180 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CSTYLELIST_DBGTESTINVARIANT=0x1c5 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CSTYLELIST_EXTERNALIZEL=0x1c8 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CSTYLELIST_REMOVE=0x1c9 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CEDITABLETEXT_CANCELFEPINLINEEDIT=0x140 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CEDITABLETEXT_STARTFEPINLINEEDITL=0x13b +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CEDITABLETEXT_UPDATEFEPINLINETEXTL=0x13d +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CPARSERLIST_ACTIVATEAPARSERL=0x134 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CPARSERLIST_DEACTIVATEPARSER=0x136 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CPLAINTEXT_INSERTEODL=0x142 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CRICHTEXTINDEX_APPENDPHRASEINDEXL=0x1b6 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CRICHTEXTINDEX_APPLYCHARFORMATL=0x1aa +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CRICHTEXTINDEX_DBGTESTINVARIANT=0x194 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CRICHTEXTINDEX_DETACHFROMSTOREL=0x1bb +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CRICHTEXTINDEX_EXTERNALIZEREFERENCEDSTYLESL=0x1bf +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CRICHTEXTINDEX_GETCURRENTINSERTCHARFORMAT=0x1a3 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CRICHTEXTINDEX_SHARE=0x1a7 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CRICHTEXTINDEX_SPLITPARAGRAPHATPASTEPOSL=0x19e +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CRICHTEXT_DBGTESTINVARIANT=0x17c +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CRICHTEXT_DOAPPENDTAKINGSOLEPICTUREOWNERSHIPL=0x17f +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CRICHTEXT_DOCURSOROVERTAG=0x18d +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CSTYLELIST_AT=0x1c7 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CPARSERLIST_DEACTIVATEPARSER=0x137 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CPLAINTEXT_GETWORDINFO=0x181 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CRICHTEXTINDEX_APPLYCHARFORMATL=0x1ab +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CRICHTEXTINDEX_DBGTESTINVARIANT=0x195 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CRICHTEXTINDEX_DETACHFROMSTOREL=0x1bc +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CRICHTEXTINDEX_SPLITPARAGRAPHATPASTEPOSL=0x19f +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP2_CRICHTEXT_DBGTESTINVARIANT=0x17d +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP3_CRICHTEXTINDEX_APPLYCHARFORMATL=0x1ac +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP3_CRICHTEXTINDEX_DBGTESTINVARIANT=0x196 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP3_CRICHTEXTINDEX_INSERTL=0x1a0 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP3_CRICHTEXT_DBGTESTINVARIANT=0x17e +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP3_CSTYLELIST_AT=0x1c6 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP4_CRICHTEXTINDEX_APPLYCHARFORMATL=0x1ad +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP4_CRICHTEXTINDEX_DBGTESTINVARIANT=0x197 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP5_CRICHTEXTINDEX_APPLYCHARFORMATL=0x1ae +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP5_CRICHTEXTINDEX_DBGTESTINVARIANT=0x198 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP6_CRICHTEXTINDEX_APPLYCHARFORMATL=0x1af +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP6_CRICHTEXTINDEX_DBGTESTINVARIANT=0x199 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP7_CRICHTEXTINDEX_APPLYCHARFORMATL=0x1b0 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP7_CRICHTEXTINDEX_DBGTESTINVARIANT=0x19a +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP8_CRICHTEXTINDEX_DBGTESTINVARIANT=0x19b +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RFORMATSTREAM_COPYL=0x18f +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RFORMATSTREAM_LENGTH=0x192 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RFORMATSTREAM_PTR=0x190 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RFORMATSTREAM_READVALUE=0x191 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RPHRASEATTRIBSENTRY_ADJUSTLENGTH=0x1b8 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_RPHRASEATTRIBSENTRY_DBGTESTINVARIANT=0x1b7 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TLINETEXTWRITER_WRITEL=0x188 +[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_TPARAGRAPHTEXTWRITER_WRITEL=0x187 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CFORMATLAYER_EXTERNALIZECHAINL=0x144 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CGLOBALTEXT_GETCHARS=0x14f +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CGLOBALTEXT_NEWL=0x14b +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPARAFORMATLAYER_SENSEEFFECTIVEL=0x146 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPARAFORMATLAYER_SENSEL=0x147 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPARAFORMAT_TABSTOP=0x14a +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_CONVERTFIELDTOTEXT=0x143 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_COPYTOSTREAML=0x12a +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_DOCOPYTOSTOREL=0x127 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_DOPASTEFROMSTOREL=0x12d +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_DOPTDELETE=0x131 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_EXTRACT=0x138 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_EXTRACTSELECTIVELY=0x13c +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_GETWORDINFO=0x1b0 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_INSERTFIELDL=0x13f +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_INSERTL=0x12f +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_PAGECONTAININGPOS=0x13e +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_PARAGRAPHNUMBERFORPOS=0x1af +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_PTINSERTL=0x130 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_READ=0x137 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_REMOVEFIELD=0x142 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_SCANPARAS=0x1b3 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_SCANWORDS=0x1b2 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_TOPARAGRAPHSTART=0x1b1 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_UPDATEFIELDL=0x141 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CPLAINTEXT_UPDATEPAGETABLE=0x13d +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXTINDEX_CRICHTEXTINDEX=0x150 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXTINDEX_DELETEFROMPARAGRAPH=0x154 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXTINDEX_DOPASTEFIRSTINTOPARAL=0x15f +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXTINDEX_DOPASTEINTOPARAL=0x160 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXTINDEX_DOPASTEPHRASEL=0x162 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXTINDEX_GETPARAATTRIBS=0x159 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXTINDEX_HASMARKUPDATA=0x15b +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXTINDEX_INTERNALIZEL=0x15d +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXTINDEX_NEWINSERTCHARFORMATL=0x156 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXTINDEX_PASTEPHRASEIXL=0x161 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXTINDEX_RBPASTEPARAIXL=0x165 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXTINDEX_RBPASTEPHRASEIXL=0x166 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXTINDEX_RBPASTESHAREDFORMATSL=0x164 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXTINDEX_REBALANCEINDEX=0x158 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXTINDEX_SETINSERTCHARFORMATL=0x155 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXTINDEX_SHAREDPARAATTRIBS=0x15e +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_APPLYCHARFORMATL=0x189 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_APPLYEXTENDEDCHARFORMATL=0x18c +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_APPLYPARAFORMATL=0x186 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_APPLYPARAGRAPHSTYLEL=0x18f +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_DELETEFROMPARAGRAPH=0x17f +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_DELETEL=0x17a +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_DELETEPARAGRAPH=0x17d +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_DELSETINSERTCHARFORMATL=0x183 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_DETACHFROMSTOREL=0x1aa +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_DOCOPYTOSTOREL=0x170 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_DOPASTERTFROMSTOREL=0x173 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_DROPPICTUREOWNERSHIP=0x1ae +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_GETEXTENDEDCHARFORMAT=0x1a5 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_GETPARAFORMATL=0x1a2 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_GETPARAGRAPHFORMATL=0x1a0 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_GETPICTURESIZEINTWIPS=0x19e +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_GETSPECIFICCHARFORMATLEFTRIGHT=0x1a8 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_GETSPECIFICPARAGRAPHFORMATL=0x1a1 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_GETTEXTANDEXTENDEDFORMAT=0x19d +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_INSERTL=0x176 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_NEWL=0x167 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_NOTIFYSTYLECHANGEDL=0x193 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_PARAGRAPHNUMBERFORPOS=0x181 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_PARAGRAPHSTYLE=0x194 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_PASTERICHTEXTFROMSTOREL=0x174 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_PICTUREHANDLEL=0x19f +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_PICTUREHEADER=0x1ad +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_REMOVESPECIFICCHARFORMATL=0x19a +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_REMOVESPECIFICPARAFORMATL=0x197 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_RTINSERTL=0x178 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_SETEXTENDEDINSERTCHARFORMATL=0x182 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CRICHTEXT_SETPICTUREFACTORY=0x1ac +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CSTYLELIST_AT=0x1b4 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CSTYLELIST_SETSTYLETOFOLLOW=0x1b6 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CEDITABLETEXT_COMMITFEPINLINEEDITL=0x126 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CFORMATLAYER_EXTERNALIZECHAINL=0x145 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CGLOBALTEXT_NEWL=0x14c +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CPARSERLIST_PANIC=0x125 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CPLAINTEXT_COPYTOSTREAML=0x12b +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CPLAINTEXT_DOCOPYTOSTOREL=0x128 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CPLAINTEXT_DOPTDELETE=0x132 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CPLAINTEXT_EXTRACT=0x139 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CPLAINTEXT_IMPORTTEXTFILEL=0x134 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CPLAINTEXT_INSERTFIELDL=0x140 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CPLAINTEXT_PASTEFROMSTREAML=0x12e +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CPLAINTEXT_READ=0x136 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXTINDEX_CRICHTEXTINDEX=0x151 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXTINDEX_INSERTL=0x152 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXTINDEX_NEWINSERTCHARFORMATL=0x157 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXTINDEX_SPLITPHRASEL=0x15a +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_APPLYCHARFORMATL=0x18a +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_APPLYEXTENDEDCHARFORMATL=0x18d +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_APPLYPARAFORMATL=0x187 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_APPLYPARAGRAPHSTYLEL=0x190 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_DELETEFROMPARAGRAPH=0x180 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_DELETEL=0x17b +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_DELETEPARAGRAPH=0x17e +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_DELSETINSERTCHARFORMATL=0x184 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_DETACHFROMSTOREL=0x1a9 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_DOCOPYTOSTOREL=0x171 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_GETEXTENDEDCHARFORMAT=0x1a6 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_GETPARAFORMATL=0x1a3 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_INSERTL=0x177 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_NEWL=0x168 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_PARAGRAPHSTYLE=0x195 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_PASTERICHTEXTFROMSTOREL=0x175 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_REMOVESPECIFICCHARFORMATL=0x19b +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_CRICHTEXT_REMOVESPECIFICPARAFORMATL=0x198 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP1_RFORMATSTREAM_MERGETABLISTS=0x149 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CGLOBALTEXT_NEWL=0x14d +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CPLAINTEXT_COPYTOSTREAML=0x12c +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CPLAINTEXT_DOCOPYTOSTOREL=0x129 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CPLAINTEXT_DOPTDELETE=0x133 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CPLAINTEXT_EXPORTASTEXTL=0x135 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CPLAINTEXT_EXTRACT=0x13a +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXTINDEX_DOPASTEPHRASEL=0x163 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXTINDEX_INSERTL=0x153 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXT_APPLYCHARFORMATL=0x18b +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXT_APPLYEXTENDEDCHARFORMATL=0x18e +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXT_APPLYPARAFORMATL=0x188 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXT_APPLYPARAGRAPHSTYLEL=0x191 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXT_DELETEL=0x17c +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXT_DELSETINSERTCHARFORMATL=0x185 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXT_DETACHFROMSTOREL=0x1ab +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXT_DOCOPYTOSTOREL=0x172 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXT_GETEXTENDEDCHARFORMAT=0x1a7 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXT_GETPARAFORMATL=0x1a4 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXT_INSERTL=0x179 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXT_NEWL=0x169 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXT_PARAGRAPHSTYLE=0x196 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXT_REMOVESPECIFICCHARFORMATL=0x19c +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CRICHTEXT_REMOVESPECIFICPARAFORMATL=0x199 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP2_CSTYLELIST_AT=0x1b5 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP3_CGLOBALTEXT_NEWL=0x14e +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP3_CPLAINTEXT_EXTRACT=0x13b +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP3_CRICHTEXTINDEX_DETACHFROMSTOREL=0x15c +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP3_CRICHTEXT_APPLYPARAGRAPHSTYLEL=0x192 +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP3_CRICHTEXT_NEWL=0x16a +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP4_CRICHTEXT_NEWL=0x16b +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP5_CRICHTEXT_NEWL=0x16c +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP6_CRICHTEXT_NEWL=0x16d +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP7_CRICHTEXT_NEWL=0x16e +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_DUP8_CRICHTEXT_NEWL=0x16f +[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_RFORMATSTREAM_MERGETABLISTS=0x148 diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/ttext/TEtextDefect.mmp --- a/textrendering/texthandling/ttext/TEtextDefect.mmp Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/texthandling/ttext/TEtextDefect.mmp Tue Jul 06 16:23:19 2010 +0300 @@ -18,10 +18,12 @@ target tetextdefect.exe targettype EXE +UID 0x100039CE 0xE0008383 +VENDORID 0x70000001 userinclude ../ttext userinclude ../stext -userinclude ../inc +userinclude ../inc ../traces MW_LAYER_SYSTEMINCLUDE_SYMBIAN SOURCEPATH ../ttext @@ -31,6 +33,5 @@ source TxtWriter.cpp library euser.lib estor.lib efsrv.lib charconv.lib gdi.lib etext.lib tins.lib -VENDORID 0x70000001 -SMPSAFE \ No newline at end of file +SMPSAFE diff -r 6be019398652 -r 601ab138ba0b textrendering/texthandling/ttext/T_FMT1.mmp --- a/textrendering/texthandling/ttext/T_FMT1.mmp Fri Jun 11 15:33:54 2010 +0300 +++ b/textrendering/texthandling/ttext/T_FMT1.mmp Tue Jul 06 16:23:19 2010 +0300 @@ -21,14 +21,15 @@ target t_fmt1.exe targettype EXE +UID 0x100039CE 0xE0008383 +VENDORID 0x70000001 userinclude ../ttext userinclude ../stext -userinclude ../inc // your public include directory should be here +userinclude ../inc ../traces // your public include directory should be here OS_LAYER_SYSTEMINCLUDE_SYMBIAN -SOURCEPATH ../group SOURCEPATH ../ttext // source files source t_fmt1.cpp @@ -45,6 +46,4 @@ library euser.lib estor.lib gdi.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file +SMPSAFE