OSDN Git Service

Initialize DisplayData fences to NO_FENCE, not NULL
authorJesse Hall <jessehall@google.com>
Thu, 28 Feb 2013 00:39:25 +0000 (16:39 -0800)
committerJesse Hall <jessehall@google.com>
Thu, 28 Feb 2013 00:48:41 +0000 (16:48 -0800)
Also fix another place that was checking for NULL fence rather than
Fence::isValid().

Bug 8283950

Change-Id: Ie06db327eb416828d8dac139171d96d4470b2e35

services/surfaceflinger/DisplayHardware/HWComposer.cpp
services/surfaceflinger/DisplayHardware/HWComposer.h
services/surfaceflinger/SurfaceFlinger.cpp

index 6f85f69..11f65f6 100644 (file)
@@ -1049,5 +1049,21 @@ bool HWComposer::VSyncThread::threadLoop() {
     return true;
 }
 
+HWComposer::DisplayData::DisplayData()
+:   width(0), height(0), format(0),
+    xdpi(0.0f), ydpi(0.0f),
+    refresh(0),
+    connected(false),
+    hasFbComp(false), hasOvComp(false),
+    capacity(0), list(NULL),
+    framebufferTarget(NULL), fbTargetHandle(0),
+    lastRetireFence(Fence::NO_FENCE), lastDisplayFence(Fence::NO_FENCE),
+    events(0)
+{}
+
+HWComposer::DisplayData::~DisplayData() {
+    free(list);
+}
+
 // ---------------------------------------------------------------------------
 }; // namespace android
index 05f7784..f7ed1aa 100644 (file)
@@ -289,13 +289,8 @@ private:
 
 
     struct DisplayData {
-        DisplayData() : xdpi(0), ydpi(0), refresh(0),
-            connected(false), hasFbComp(false), hasOvComp(false),
-            capacity(0), list(NULL),
-            framebufferTarget(NULL), fbTargetHandle(NULL), events(0) { }
-        ~DisplayData() {
-            free(list);
-        }
+        DisplayData();
+        ~DisplayData();
         uint32_t width;
         uint32_t height;
         uint32_t format;    // pixel format from FB hal, for pre-hwc-1.1
index 09a1c59..ee3e93b 100644 (file)
@@ -892,7 +892,7 @@ void SurfaceFlinger::postComposition()
 
         const HWComposer& hwc = getHwComposer();
         sp<Fence> presentFence = hwc.getDisplayFence(HWC_DISPLAY_PRIMARY);
-        if (presentFence != NULL) {
+        if (presentFence->isValid()) {
             mAnimFrameTracker.setActualPresentFence(presentFence);
         } else {
             // The HWC doesn't support present fences, so use the refresh