diff --git a/libs/gui/SurfaceTexture.cpp b/libs/gui/SurfaceTexture.cpp index 9c76e6e78..ed6b73e20 100644 --- a/libs/gui/SurfaceTexture.cpp +++ b/libs/gui/SurfaceTexture.cpp @@ -338,14 +338,14 @@ void SurfaceTexture::setReleaseFence(int fenceFd) { sp mergedFence = Fence::merge( String8("SurfaceTexture merged release"), mEGLSlots[mCurrentTexture].mReleaseFence, fence); - if (mergedFence.get()) { + if (!mergedFence.get()) { ALOGE("failed to merge release fences"); // synchronization is broken, the best we can do is hope fences // signal in order so the new fence will act like a union mEGLSlots[mCurrentTexture].mReleaseFence = fence; - } else { - mEGLSlots[mCurrentTexture].mReleaseFence = mergedFence; + return; } + mEGLSlots[mCurrentTexture].mReleaseFence = mergedFence; } }