Skip to content

Commit 527ee91

Browse files
author
Romain Guy
committed
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
1 parent a7e3a1e commit 527ee91

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

core/java/android/view/ViewRootImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -671,14 +671,15 @@ void destroyHardwareLayers() {
671671
}
672672

673673
public boolean attachFunctor(int functor) {
674+
//noinspection SimplifiableIfStatement
674675
if (mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled()) {
675676
return mAttachInfo.mHardwareRenderer.attachFunctor(mAttachInfo, functor);
676677
}
677678
return false;
678679
}
679680

680681
public void detachFunctor(int functor) {
681-
if (mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled()) {
682+
if (mAttachInfo.mHardwareRenderer != null) {
682683
mAttachInfo.mHardwareRenderer.detachFunctor(functor);
683684
}
684685
}

0 commit comments

Comments
 (0)