uifw/EikStd/coctlsrc/smileyiconrecord.cpp
branchRCL_3
changeset 38 c52421ed5f07
parent 0 2f259fa3e83a
child 55 aecbbf00d063
--- a/uifw/EikStd/coctlsrc/smileyiconrecord.cpp	Wed Jun 09 09:58:37 2010 +0300
+++ b/uifw/EikStd/coctlsrc/smileyiconrecord.cpp	Mon Jun 21 15:57:43 2010 +0300
@@ -84,7 +84,8 @@
         return;
         }
     TInt index( 0 );
-    for ( ; index < iIconArray.Count(); index++ )
+    TInt count( iIconArray.Count() );
+    for ( ; index < count; index++ )
         {
         if ( iIconArray[index]->DocPos() >= aIcon->DocPos() )
             {
@@ -102,7 +103,8 @@
     {
     DeleteIconsIn( aStart, aLength );
     TInt index( FirstIndexAfter( aStart ) );
-    for ( ; index != KErrNotFound && index < iIconArray.Count(); index++ )
+    TInt count( iIconArray.Count() );
+    for ( ; index != KErrNotFound && index < count; index++ )
         {
         TInt newPos( iIconArray[index]->DocPos() - aLength );
         iIconArray[index]->SetDocPos( newPos );
@@ -116,7 +118,8 @@
 void CSmileyIconRecord::HandleTextInsert( TInt aStart, TInt aLength )
     {
     TInt index( FirstIndexAfter( aStart ) );
-    for ( ; index != KErrNotFound && index < iIconArray.Count(); index++ )
+    TInt count( iIconArray.Count() );
+    for ( ; index != KErrNotFound && index < count; index++ )
         {
         TInt newPos( iIconArray[index]->DocPos() + aLength );
         iIconArray[index]->SetDocPos( newPos );
@@ -130,11 +133,11 @@
 CSmileyIcon* CSmileyIconRecord::SmileyIconAtPos( TInt aDocPos )
     {
     TInt count( iIconArray.Count() );
-    for ( TInt i( 0 ); i < iIconArray.Count(); i++ )
+    for ( TInt i( 0 ); i < count; i++ )
         {
         CSmileyIcon* icon( iIconArray[i] );
-        if ( iIconArray[i]->DocPos() <= aDocPos && 
-            iIconArray[i]->DocPos() + iIconArray[i]->SmileyLength() > aDocPos )
+        if ( icon->DocPos() <= aDocPos && 
+             icon->DocPos() + icon->SmileyLength() > aDocPos )
             {
             return iIconArray[i];
             }
@@ -143,12 +146,33 @@
     }
 
 // ---------------------------------------------------------------------------
+// CSmileyIconRecord::DeleteIconAtPos
+// ---------------------------------------------------------------------------
+//
+void CSmileyIconRecord::DeleteIconAtPos( TInt aDocPos )
+    {
+    TInt count( iIconArray.Count() );
+    for ( TInt i( 0 ); i < count; i++ )
+        {
+        CSmileyIcon* icon( iIconArray[i] );
+        if ( icon->DocPos() <= aDocPos && 
+             icon->DocPos() + icon->SmileyLength() > aDocPos )
+            {
+            iIconArray.Remove( i );
+            delete icon;            
+            break;
+            }
+        }
+    }
+
+// ---------------------------------------------------------------------------
 // CSmileyIconRecord::SmileyRange
 // ---------------------------------------------------------------------------
 //
 void CSmileyIconRecord::CancelSelection()
     {
-    for ( TInt i( 0 ); i < iIconArray.Count(); i++ )
+    TInt count( iIconArray.Count() );
+    for ( TInt i( 0 ); i < count; i++ )
         {
         iIconArray[i]->EnableHighlight( EFalse );
         }
@@ -220,7 +244,8 @@
     {
     TInt i = ( aSearchStart < 0 || aSearchStart >= iIconArray.Count() ? 0 : 
         aSearchStart );
-    for ( ; i < iIconArray.Count(); i++ )
+    TInt count( iIconArray.Count() );
+    for ( ; i < count; i++ )
         {
         if ( iIconArray[i]->DocPos() >= aDocPos )
             {
@@ -236,7 +261,8 @@
 //
 TInt CSmileyIconRecord::FirstIndexIn( TInt aStart, TInt aLength )
     {
-    for ( TInt i( 0 ); i < iIconArray.Count(); i++ )
+    TInt count( iIconArray.Count() );
+    for ( TInt i( 0 ); i < count; i++ )
         {
         if ( iIconArray[i]->DocPos() < aStart + aLength && 
             iIconArray[i]->EndPos() > aStart )