diff options
| author | 2017-08-08 15:36:16 +0200 | |
|---|---|---|
| committer | 2017-08-11 20:40:49 +0000 | |
| commit | 0791fbf85aef8f40cee0821223c46afddd3fa464 (patch) | |
| tree | 6e15d9c4ae92cc31b42c27fcb5e2be963867a27a /libs/gui/SurfaceControl.cpp | |
| parent | 3c80f17536907ca8aad12e5b75c8f6d9ebf3bc52 (diff) | |
Don't lose BR_RELEASE/BR_DECREFS commands.
BR_RELEASE/BR_DECREFS commands are stored in mPendingStrongDerefs
and mPendingWeakDerefs, respectively. During processPendingDerefs(),
we actually execute the corresponding decStrong()/decWeak() operations.
The problem is that when we're done, we clear() the mPending vectors
without checking if new entries have been added to them. This can
happen, because decStrong()/decWeak() might cause destructors to run,
which in turn can invoke outgoing transactions that may result in
a BR_RELEASE/BR_DECREFS being queued.
Bug: 63079216
Test: binderLibTest
Change-Id: Ib1deca3f317f8b5068b4b9eddfc4219b9ec87740
Diffstat (limited to 'libs/gui/SurfaceControl.cpp')
0 files changed, 0 insertions, 0 deletions