diff options
author | John Reck <jreck@google.com> | 2014-08-28 08:43:39 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2014-08-28 08:43:39 -0700 |
commit | d0cd9db31639b246587fe494ec15d32d9fdb3dc7 (patch) | |
tree | ce549c76db9b00250555e14ee03b0634e0e73d4b /libs/hwui/AnimatorManager.cpp | |
parent | 1a08a8f52f263fb8431b54dce89d333660ac3b1f (diff) |
Actually end animators on tree destruction
Bug: 17313962
Change-Id: I66b86d50b415f9aa33da23297f22e2cf7f96f565
Diffstat (limited to 'libs/hwui/AnimatorManager.cpp')
-rw-r--r-- | libs/hwui/AnimatorManager.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/hwui/AnimatorManager.cpp b/libs/hwui/AnimatorManager.cpp index 3832d426150a..678b1eedbd96 100644 --- a/libs/hwui/AnimatorManager.cpp +++ b/libs/hwui/AnimatorManager.cpp @@ -160,13 +160,15 @@ void AnimatorManager::endAllAnimators() { if (mAnimationHandle) { EndAnimatorsFunctor functor(mAnimationHandle->context()); for_each(mAnimators.begin(), mAnimators.end(), functor); + mAnimators.clear(); + mAnimationHandle->release(); } else { // We have no context, so bust out the sledgehammer // This works because this state can only happen on the UI thread, // which means we're already on the right thread to invoke listeners for_each(mAnimators.begin(), mAnimators.end(), endAnimatorsHard); + mAnimators.clear(); } - mAnimators.clear(); } } /* namespace uirenderer */ |