idlehomescreen/widgetmanager/src/wmimageconverter.cpp
changeset 4 4d54b72983ae
parent 2 08c6ee43b396
child 5 c743ef5928ba
--- a/idlehomescreen/widgetmanager/src/wmimageconverter.cpp	Fri Jan 22 09:35:14 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmimageconverter.cpp	Tue Jan 26 11:48:23 2010 +0200
@@ -209,21 +209,19 @@
         RApaLsSession lsSession;
         User::LeaveIfError( lsSession.Connect() );
         CleanupClosePushL( lsSession );
-    
-        CArrayFixFlat<TSize>* sizeArray = new (ELeave) CArrayFixFlat<TSize>(3);
+        
+        const TInt KAppSizeArraySize = 3;
+        CArrayFixFlat<TSize>* sizeArray = new (ELeave)
+            CArrayFixFlat<TSize>( KAppSizeArraySize );
         CleanupStack::PushL( sizeArray );
         User::LeaveIfError( lsSession.GetAppIconSizes( aUid, *sizeArray ) );
-        TInt sizeCount = sizeArray->Count();
         TSize size;
-        if ( sizeCount > 0 )
+        for( TInt i=0; i < sizeArray->Count(); i++ )
             {
-            for( TInt i=0; i < sizeArray->Count(); i++ )
+            size = (*sizeArray)[i];
+            if ( size == iSize )
                 {
-                size = (*sizeArray)[i];
-                if ( size == iSize )
-                    {
-                    break;
-                    }
+                break;
                 }
             }
         CApaMaskedBitmap* maskedBmp = CApaMaskedBitmap::NewLC();
@@ -314,6 +312,8 @@
         }
 
     TDisplayMode mode = CEikonEnv::Static()->ScreenDevice()->DisplayMode();
+    if ( mode >= ERgb ) // currently svg engine doesn't render correctly
+        { mode = EColor16M; } // in this or above mode ( ou1cimx1#229434 )
     TFontSpec fontspec;
     
     CFbsBitmap* frameBuffer = new ( ELeave ) CFbsBitmap;
@@ -322,18 +322,20 @@
     
     CSvgEngineInterfaceImpl* svgEngine = CSvgEngineInterfaceImpl::NewL( 
             frameBuffer, NULL, fontspec );
-    svgEngine->SetDRMMode( EFalse );  
+    CleanupStack::PushL( svgEngine );
+    
+    svgEngine->SetDRMMode( EFalse );
 
     TInt domHandle;
     CheckSvgErrorL( svgEngine->PrepareDom( aFileName, domHandle ) );
     
     CFbsBitmap* bitmap = new(ELeave) CFbsBitmap;    
-    User::LeaveIfError( bitmap->Create( iSize, mode) );
     CleanupStack::PushL( bitmap );
+    User::LeaveIfError( bitmap->Create( iSize, mode ) );
     
     CFbsBitmap* mask = new(ELeave) CFbsBitmap;    
+    CleanupStack::PushL( mask );
     User::LeaveIfError( mask->Create( iSize, EGray256 ) );
-    CleanupStack::PushL( mask );
     
     CheckSvgErrorL( svgEngine->UseDom( domHandle, bitmap, mask ) );
 
@@ -346,6 +348,7 @@
 
     CleanupStack::Pop( mask );
     CleanupStack::Pop( bitmap );
+    CleanupStack::PopAndDestroy( svgEngine );
     CleanupStack::PopAndDestroy( frameBuffer );
     
     iBitmap = bitmap;