equal
deleted
inserted
replaced
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 |