diff options
author | 2020-01-10 08:41:15 -0800 | |
---|---|---|
committer | 2020-01-10 08:41:15 -0800 | |
commit | 783ec6803ca246ff5ccdf9809588f063b3107bb1 (patch) | |
tree | 6326c3162724361849c4ce2e0108378dadb9a4a2 | |
parent | 7618b235019514a8546e22fe20a74bb34a7b1acd (diff) |
unlinkToDeath only when the listener has no more callbacks
Bug: N/A
Test: build, boot, SurfaceFlinger_test
Change-Id: I2bbca0f781897967a18731ade3a3b4724f16d361
-rw-r--r-- | services/surfaceflinger/TransactionCompletedThread.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/services/surfaceflinger/TransactionCompletedThread.cpp b/services/surfaceflinger/TransactionCompletedThread.cpp index 4c1baafa3b..1475889cd9 100644 --- a/services/surfaceflinger/TransactionCompletedThread.cpp +++ b/services/surfaceflinger/TransactionCompletedThread.cpp @@ -310,8 +310,8 @@ void TransactionCompletedThread::threadMain() { // we get pointers that compare unequal in the SF process. interface_cast<ITransactionCompletedListener>(listenerStats.listener) ->onTransactionCompleted(listenerStats); - listener->unlinkToDeath(mDeathRecipient); if (transactionStatsDeque.empty()) { + listener->unlinkToDeath(mDeathRecipient); completedTransactionsItr = mCompletedTransactions.erase(completedTransactionsItr); } else { |