diff options
| author | 2018-06-06 18:42:16 +0200 | |
|---|---|---|
| committer | 2018-06-07 17:49:01 +0200 | |
| commit | e6a026bdfed45b4085410d1ecd042b1214cedb0a (patch) | |
| tree | 27c473b83011c586ffa12f638f8487cfb38de23f | |
| parent | a76360ddf1f709d71ac9efe55739f071ce843ca5 (diff) | |
Move nulling of nextFrameCallback
If draw() invokes postDraw that sets the next callback, the
callback will never be invoked.
Test: Long-swipe-up from navigation bar
Change-Id: If2e4dfff8a845b73fa77426305d5ece1921857e5
Fixes: 109701914
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 0506f30d04b8..b2e53ed78e68 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -3305,8 +3305,11 @@ public final class ViewRootImpl implements ViewParent, } useAsyncReport = true; - mAttachInfo.mThreadedRenderer.draw(mView, mAttachInfo, this, mNextRtFrameCallback); + + // draw(...) might invoke post-draw, which might register the next callback already. + final FrameDrawingCallback callback = mNextRtFrameCallback; mNextRtFrameCallback = null; + mAttachInfo.mThreadedRenderer.draw(mView, mAttachInfo, this, callback); } else { // If we get here with a disabled & requested hardware renderer, something went // wrong (an invalidate posted right before we destroyed the hardware surface |