uigraphics/AknIcon/srvsrc/AknIconSrv.cpp
branchRCL_3
changeset 107 9f95a5546443
parent 106 e4e3998ddda2
equal deleted inserted replaced
106:e4e3998ddda2 107:9f95a5546443
   740 // -----------------------------------------------------------------------------
   740 // -----------------------------------------------------------------------------
   741 //
   741 //
   742 CAknIconSrvIconItem* CAknIconServer::CreateIconL(
   742 CAknIconSrvIconItem* CAknIconServer::CreateIconL(
   743     const TAknIconParams& aInfo )
   743     const TAknIconParams& aInfo )
   744     {
   744     {
       
   745     const TInt KMaxIconDataLimit = 0xFA000;
   745     CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
   746     CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
   746     CleanupStack::PushL( bitmap );
   747     CleanupStack::PushL( bitmap );
   747 
   748 
   748     CFbsBitmap* mask = NULL;
   749     CFbsBitmap* mask = NULL;
   749 
   750 
   763 
   764 
   764     CleanupStack::PushL( TCleanupItem( CleanupIconLoader, this ) );    
   765     CleanupStack::PushL( TCleanupItem( CleanupIconLoader, this ) );    
   765 
   766 
   766     TPtrC8 iconData = InitIconDataAndHandlerLC(aInfo, loader, handler);        
   767     TPtrC8 iconData = InitIconDataAndHandlerLC(aInfo, loader, handler);        
   767 
   768 
       
   769     if(iconData.Size()>KMaxIconDataLimit)
       
   770         {
       
   771         User::Leave(KErrTooBig);
       
   772         }
       
   773     
   768     bitmapDepth = (TDisplayMode)loader->IconDepthL( aInfo.iBitmapId );    
   774     bitmapDepth = (TDisplayMode)loader->IconDepthL( aInfo.iBitmapId );    
   769 
   775 
   770     handler->PrepareIconL( iconData, handle );
   776     handler->PrepareIconL( iconData, handle );
   771 
   777 
   772     // CleanupIconLoader, InitIconDataAndHandlerLC
   778     // CleanupIconLoader, InitIconDataAndHandlerLC