uifw/ganes/src/HgVgEGL.cpp
branchRCL_3
changeset 25 941195f2d488
parent 10 9f56a4e1b8ab
child 51 fcdfafb36fe7
--- a/uifw/ganes/src/HgVgEGL.cpp	Tue May 11 16:27:42 2010 +0300
+++ b/uifw/ganes/src/HgVgEGL.cpp	Tue May 25 12:58:19 2010 +0300
@@ -292,7 +292,13 @@
         {
         // create temporary buffer for data
         RBuf8 buf;
-        buf.Create(aRect.Width() * aRect.Height() * 4);
+        TInt bufCreateErr = buf.Create(aRect.Width() * aRect.Height() * 4);
+        if(bufCreateErr != KErrNone) {
+            buf.Close(); //just in case
+            delete bitmap;
+            bitmap = NULL;
+            return NULL;
+        }
         buf.Fill(0xFF);
 
         // read data back from vg (this is sloooww)
@@ -301,18 +307,25 @@
             {
             dataStride = 4 * aRect.Height();
             vgReadPixels((void*)buf.Ptr(), 
-                    dataStride, VG_sARGB_8888, 0, 0, aRect.Height(), aRect.Width());
+                         dataStride, VG_sARGB_8888, 0, 0, aRect.Height(), aRect.Width());
             }
         else
             {
             dataStride = 4 * aRect.Width();
             vgReadPixels((void*)buf.Ptr(), 
-                    dataStride, VG_sARGB_8888, 0, 0, aRect.Width(), aRect.Height());            
+                         dataStride, VG_sARGB_8888, 0, 0, aRect.Width(), aRect.Height());
             }
 
         // because of bug in vg driver we need to swap memory using for loop, because
         // negative datastrides cause crash
-        bitmap->Create(TSize(aRect.Width(), aRect.Height()), EColor16MA);
+        TInt bitmapCreateErr = bitmap->Create(TSize(aRect.Width(), aRect.Height()), EColor16MA);
+        if(bitmapCreateErr != KErrNone) {
+            buf.Close();
+            delete bitmap;
+            bitmap = NULL;
+            return NULL;
+        }
+        
         bitmap->BeginDataAccess();
         if (!aLandscape)
             {