textrendering/textformatting/tagma/TMTEXT.CPP
branchRCL_3
changeset 54 748ec5531811
parent 0 1fb32624e06b
child 55 336bee5c2d35
--- a/textrendering/textformatting/tagma/TMTEXT.CPP	Wed Jun 09 11:40:52 2010 +0300
+++ b/textrendering/textformatting/tagma/TMTEXT.CPP	Tue Aug 31 17:01:26 2010 +0300
@@ -20,6 +20,11 @@
 #include <txtfrmat.h>
 #include <txtetext.h>
 #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)