diff -r e2effe28d8cc -r a10f447f38bd skins/AknSkins/srvsrc/AknsSrvWallpaperCache.cpp --- a/skins/AknSkins/srvsrc/AknsSrvWallpaperCache.cpp Mon Mar 15 12:44:38 2010 +0200 +++ b/skins/AknSkins/srvsrc/AknsSrvWallpaperCache.cpp Wed Mar 31 23:10:44 2010 +0300 @@ -61,6 +61,12 @@ TAknsSrvWallpaper* CAknsSrvWallpaperCache::AddL( RFs& aRFs, const TDesC& aFileName, const TSize aTrgSize, const TSize aMaxSize ) { + + if ( aFileName.Length() == 0 ) + { + return NULL; + } + if ( aTrgSize == TSize(-1, -1) ) { TryDecodeImageL( aRFs,aFileName ); @@ -73,8 +79,9 @@ wp = CachedImage( aFileName ); if ( !wp ) { - wp = new TAknsSrvWallpaper; + wp = new ( ELeave ) TAknsSrvWallpaper; ZeroItem ( *wp ); + CleanupStack::PushL( wp ); } else { @@ -158,6 +165,7 @@ { RemoveOldestItem(); iCache.Append( wp ); + CleanupStack::Pop( wp ); } return wp; } @@ -283,4 +291,4 @@ } -// End of File +// End of File \ No newline at end of file