diff -r 7403edfcf0fb -r dea39715fc05 imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailgeneratetask.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailgeneratetask.cpp Mon Mar 15 12:41:55 2010 +0200 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailgeneratetask.cpp Wed Mar 31 22:04:49 2010 +0300 @@ -71,6 +71,7 @@ // scaled bitmaps to pool by default iScaledBitmapToPool = ETrue; + iBitmapHandle = 0; } @@ -94,10 +95,10 @@ delete iMissingSizes; } - if ( iBitmap ) + if ( iBitmapHandle ) { - iServer.DeleteBitmapFromPool( iBitmap->Handle()); - iBitmap = NULL; + iServer.DeleteBitmapFromPool( iBitmapHandle ); + iBitmapHandle = 0; } iProvider = NULL; @@ -319,8 +320,8 @@ CleanupStack::PushL( aBitmap ); iServer.AddBitmapToPoolL( iRequestId.iSession, aBitmap, iRequestId ); - // Keep pointer so we can delete bitmap from pool - iBitmap = aBitmap; + // Keep handle so we can delete bitmap from pool + iBitmapHandle = aBitmap->Handle(); CleanupStack::Pop( aBitmap ); // compTask is the scale task which returns the bitmap to the client @@ -355,7 +356,7 @@ } CThumbnailScaleTask* scaleTask = CThumbnailScaleTask::NewL( iProcessor, iServer, iFilename, - iBitmap, iOriginalSize, (*iMissingSizes)[ i ].iSize, (*iMissingSizes)[ i ].iCrop, iDisplayMode, + aBitmap, iOriginalSize, (*iMissingSizes)[ i ].iSize, (*iMissingSizes)[ i ].iCrop, iDisplayMode, KMaxPriority, iTargetUri, (*iMissingSizes)[ i ].iType, iModified, iScaledBitmapToPool, iEXIF, iRequestId); CleanupStack::PushL( scaleTask ); @@ -391,7 +392,7 @@ if( i == 0 ) { // compTask is now responsible for completing the RMessage - scaleTask->SetMessageData( iRequestId, iMessage ); + scaleTask->SetMessageData( iRequestId, iMessage, iClientThread ); ResetMessageData(); } } @@ -412,7 +413,7 @@ } complTask = CThumbnailScaleTask::NewL( iProcessor, iServer, iFilename, - iBitmap, iOriginalSize, iSize, iFlags& CThumbnailManager + aBitmap, iOriginalSize, iSize, iFlags& CThumbnailManager ::ECropToAspectRatio, iDisplayMode, KMaxPriority, iTargetUri, iThumbnailSize, iModified, iScaledBitmapToPool, iEXIF, iRequestId ); CleanupStack::PushL( complTask ); @@ -446,13 +447,14 @@ // compTask is now responsible for completing the RMessage and // returning the bitmap to the client - complTask->SetMessageData( iRequestId, iMessage ); + complTask->SetMessageData( iRequestId, iMessage, iClientThread ); ResetMessageData(); } // Scale tasks now reference the bitmap in the pool - iServer.DeleteBitmapFromPool( iBitmap->Handle()); - iBitmap = NULL; + iServer.DeleteBitmapFromPool( iBitmapHandle ); + iBitmapHandle = 0; + aBitmap = NULL; } // ---------------------------------------------------------------------------