imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailgeneratetask.cpp
branchRCL_3
changeset 11 dea39715fc05
parent 10 7403edfcf0fb
child 20 ffb2d5dd62e9
--- 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;
     }
 
 // ---------------------------------------------------------------------------