diff options
author | Romain Guy <romainguy@google.com> | 2012-06-11 13:24:30 -0700 |
---|---|---|
committer | Romain Guy <romainguy@google.com> | 2012-06-11 13:24:30 -0700 |
commit | 527ee91b60426b5a344e9905c7f9a14d6d26219e (patch) | |
tree | f8e3f6a4d12f77eb8ad7201d1728c9066b023058 /core/java/android/view/ViewRootImpl.java | |
parent | a7e3a1e0e7d308e7e78a1992038a34485d04ab29 (diff) | |
download | frameworks_base-527ee91b60426b5a344e9905c7f9a14d6d26219e.zip frameworks_base-527ee91b60426b5a344e9905c7f9a14d6d26219e.tar.gz frameworks_base-527ee91b60426b5a344e9905c7f9a14d6d26219e.tar.bz2 |
Prevent crash in WebView when disabling the hw renderer
Bug #6596807
A crash would occur in the following situation:
- WebView registers a functor with the hardware renderer
- The hardware renderer gets disabled
- WebView attemps to unregister its functor
Unregistering the functor fails because the hardware renderer is now disabled.
When the renderer becomes enabled again, the functor is invoked, which leads
to a native crash.
This change simply allows functors to always be unregistered, even when the
renderer is disabled. A disabled renderer only means that it will not be used
for rendering; as such, unregistering a functor is a valid operation and
should be allowed.
Change-Id: I0ff897a0cca7e048c609033215cd0f7f5c940bcc
Diffstat (limited to 'core/java/android/view/ViewRootImpl.java')
-rw-r--r-- | core/java/android/view/ViewRootImpl.java | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index b5fff8a..7eeb6d0 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -671,6 +671,7 @@ public final class ViewRootImpl implements ViewParent, } public boolean attachFunctor(int functor) { + //noinspection SimplifiableIfStatement if (mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled()) { return mAttachInfo.mHardwareRenderer.attachFunctor(mAttachInfo, functor); } @@ -678,7 +679,7 @@ public final class ViewRootImpl implements ViewParent, } public void detachFunctor(int functor) { - if (mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled()) { + if (mAttachInfo.mHardwareRenderer != null) { mAttachInfo.mHardwareRenderer.detachFunctor(functor); } } |