diff options
author | 2020-06-18 17:00:58 -0700 | |
---|---|---|
committer | 2020-06-19 10:50:49 -0700 | |
commit | 109ad7156997f031717183664ac51a03110bc2b3 (patch) | |
tree | 80332a2a284cadb57785146a1d057e61eaf7115f | |
parent | 09397229e38cfca397c38904a58ef1a3f6cbcf85 (diff) |
Only force send callbacks if they are registered
Some clients of ASurfaceControl may not set callbacks. We do not want
to call finalizePendingCallbacks in this case.
Bug: 159231312
Test: build, boot, SurfaceFlinger_test, libsurfaceflinger_unittest
Change-Id: I62dc270302a60274d8d1192d0e35ce3f48721e6c
-rw-r--r-- | services/surfaceflinger/TransactionCompletedThread.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/services/surfaceflinger/TransactionCompletedThread.cpp b/services/surfaceflinger/TransactionCompletedThread.cpp index 0cdff8f380..ca244934e4 100644 --- a/services/surfaceflinger/TransactionCompletedThread.cpp +++ b/services/surfaceflinger/TransactionCompletedThread.cpp @@ -154,6 +154,9 @@ status_t TransactionCompletedThread::registerPendingCallbackHandle( status_t TransactionCompletedThread::finalizePendingCallbackHandles( const std::deque<sp<CallbackHandle>>& handles) { + if (handles.empty()) { + return NO_ERROR; + } std::lock_guard lock(mMutex); if (!mRunning) { ALOGE("cannot add presented callback handle because the callback thread isn't running"); |