diff options
Diffstat (limited to 'services/surfaceflinger/TransactionCompletedThread.cpp')
-rw-r--r-- | services/surfaceflinger/TransactionCompletedThread.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/services/surfaceflinger/TransactionCompletedThread.cpp b/services/surfaceflinger/TransactionCompletedThread.cpp index 8db03db7e8..4c1baafa3b 100644 --- a/services/surfaceflinger/TransactionCompletedThread.cpp +++ b/services/surfaceflinger/TransactionCompletedThread.cpp @@ -311,8 +311,16 @@ void TransactionCompletedThread::threadMain() { interface_cast<ITransactionCompletedListener>(listenerStats.listener) ->onTransactionCompleted(listenerStats); listener->unlinkToDeath(mDeathRecipient); + if (transactionStatsDeque.empty()) { + completedTransactionsItr = + mCompletedTransactions.erase(completedTransactionsItr); + } else { + completedTransactionsItr++; + } + } else { + completedTransactionsItr = + mCompletedTransactions.erase(completedTransactionsItr); } - completedTransactionsItr = mCompletedTransactions.erase(completedTransactionsItr); } else { completedTransactionsItr++; } |