OSDN Git Service

Pass sp<Fence>s around instead of file descriptors
[android-x86/frameworks-native.git] / libs / gui / GLConsumer.cpp
index 09831fb..630eb7c 100644 (file)
@@ -367,14 +367,14 @@ status_t GLConsumer::checkAndUpdateEglStateLocked() {
     return NO_ERROR;
 }
 
-void GLConsumer::setReleaseFence(int fenceFd) {
-    sp<Fence> fence(new Fence(fenceFd));
-    if (fenceFd == -1 || mCurrentTexture == BufferQueue::INVALID_BUFFER_SLOT)
-        return;
-    status_t err = addReleaseFence(mCurrentTexture, fence);
-    if (err != OK) {
-        ST_LOGE("setReleaseFence: failed to add the fence: %s (%d)",
-                strerror(-err), err);
+void GLConsumer::setReleaseFence(const sp<Fence>& fence) {
+    if (fence->isValid() &&
+            mCurrentTexture != BufferQueue::INVALID_BUFFER_SLOT) {
+        status_t err = addReleaseFence(mCurrentTexture, fence);
+        if (err != OK) {
+            ST_LOGE("setReleaseFence: failed to add the fence: %s (%d)",
+                    strerror(-err), err);
+        }
     }
 }