uiacceltk/hitchcock/ServerCore/Src/alfwindowmanager.cpp
branchRCL_3
changeset 18 1801340c26a2
parent 13 3a60ebea00d0
child 19 e5af45d51884
--- a/uiacceltk/hitchcock/ServerCore/Src/alfwindowmanager.cpp	Thu Jul 15 19:40:07 2010 +0300
+++ b/uiacceltk/hitchcock/ServerCore/Src/alfwindowmanager.cpp	Thu Aug 19 10:48:02 2010 +0300
@@ -208,6 +208,7 @@
 	aWindow->SetSurfaceExtent(aWindow->SurfaceExtent());
     aWindow->SetWindowArea();
     aWindow->SetTransparencyAlphaChannel(aWindow->TransparencyAlphaChannel());
+    aWindow->SetScreenDeviceValid(aWindow->IsScreenDeviceValid());
     aWindow->IncludeToVisibilityCalculation(aWindow->IsIncludedToVisibilityCalculation());
 	aWindow->SetActive(aWindow->IsActive());
 	}
@@ -253,16 +254,23 @@
 
         TInt offset;
         TAlfWindowAttributes* windowAttributes = CreateWindowAttributes(offset);
-        windowAttributes->iWindowNodeType = wservInfo.iNodeType; 
-        windowAttributes->iScreenNumber = wservInfo.iScreenNumber; 
+        if (windowAttributes)
+            {
+            windowAttributes->iWindowNodeType = wservInfo.iNodeType; 
+            windowAttributes->iScreenNumber = wservInfo.iScreenNumber; 
 
-    	TAlfBridgerData data;
-        data.Set(EAlfDSDestroyWindow, 
-            wservInfo.iRefId.iWindowGroupId, 
-            wservInfo.iRefId.iWindowIdentifer, 
-            (TAny*)offset); 
-
-        PostIt(data);
+            TAlfBridgerData data;
+            data.Set(EAlfDSDestroyWindow, 
+                wservInfo.iRefId.iWindowGroupId, 
+                wservInfo.iRefId.iWindowIdentifer, 
+                (TAny*)offset); 
+    
+            PostIt(data);
+            }
+		else
+            {
+            CAlfWindow::ReportOOM();
+            }
 
         iData->iWindows.Remove(i);
         delete &aWindow;
@@ -316,7 +324,7 @@
 // Decaprecated
 // ---------------------------------------------------------------------------
 //   
-EXPORT_C CAlfWindow* CAlfWindowManager::ReserveL( const TWindowIdentifier& /*aId*/, TBool aReserveBuffer /*= ETrue*/ )
+EXPORT_C CAlfWindow* CAlfWindowManager::ReserveL( const TWindowIdentifier& /*aId*/, TBool /*aReserveBuffer = ETrue*/ )
     {
     return 0; // we never get here 
     }
@@ -658,7 +666,14 @@
     TAlfWindowAttributes empty;
     TAlfWindowAttributes* attributes = NULL;
     TRAP_IGNORE(attributes = (TAlfWindowAttributes*)Bridge()->AppendVarDataL( sizeof(TAlfWindowAttributes), aIndex ))
-    *attributes = empty;
+    if (attributes)
+        {
+        *attributes = empty;
+        }
+    else
+        {
+        CAlfWindow::ReportOOM();
+        }
     return attributes;
     }
 
@@ -671,7 +686,14 @@
     TAlfWindowCommandBufferAttributes empty;    
     TAlfWindowCommandBufferAttributes* windowCommandBuffer = NULL;    
     TRAP_IGNORE(windowCommandBuffer = (TAlfWindowCommandBufferAttributes*)Bridge()->AppendVarDataL( sizeof(TAlfWindowCommandBufferAttributes), aIndex ))    
-    *windowCommandBuffer = empty;
+    if (windowCommandBuffer)
+        {
+        *windowCommandBuffer = empty;
+        }
+    else
+        {
+        CAlfWindow::ReportOOM();
+        }
     return windowCommandBuffer;
     }