--- 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;
}
// ---------------------------------------------------------------------------