summaryrefslogtreecommitdiffstats
path: root/core/java/android/view/View.java
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2012-03-23 19:05:50 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-03-23 19:05:50 -0700
commitd4577c0c29f8e38a34d1aeac59803b37769af790 (patch)
tree68f57ea048e574d9897dd3268fe7a7f7a868128e /core/java/android/view/View.java
parent660b014daa639424e1a0bca299c5a8abfa14411c (diff)
parenta998dff5d49a423aaf7097aa8f96bf5bdc681d25 (diff)
downloadframeworks_base-d4577c0c29f8e38a34d1aeac59803b37769af790.zip
frameworks_base-d4577c0c29f8e38a34d1aeac59803b37769af790.tar.gz
frameworks_base-d4577c0c29f8e38a34d1aeac59803b37769af790.tar.bz2
Merge "Destroy the hardware renderer when ViewRootImpl's die is post-poned Bug #6109035"
Diffstat (limited to 'core/java/android/view/View.java')
-rw-r--r--core/java/android/view/View.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 770d899..3afc20e 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -10045,7 +10045,7 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
destroyDrawingCache();
- destroyLayer();
+ destroyLayer(false);
if (mAttachInfo != null) {
if (mDisplayList != null) {
@@ -10421,7 +10421,7 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
// Destroy any previous software drawing cache if needed
switch (mLayerType) {
case LAYER_TYPE_HARDWARE:
- destroyLayer();
+ destroyLayer(false);
// fall through - non-accelerated views may use software layer mechanism instead
case LAYER_TYPE_SOFTWARE:
destroyDrawingCache();
@@ -10559,11 +10559,12 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
* @see #setLayerType(int, android.graphics.Paint)
* @see #LAYER_TYPE_HARDWARE
*/
- boolean destroyLayer() {
+ boolean destroyLayer(boolean valid) {
if (mHardwareLayer != null) {
AttachInfo info = mAttachInfo;
if (info != null && info.mHardwareRenderer != null &&
- info.mHardwareRenderer.isEnabled() && info.mHardwareRenderer.validate()) {
+ info.mHardwareRenderer.isEnabled() &&
+ (valid || info.mHardwareRenderer.validate())) {
mHardwareLayer.destroy();
mHardwareLayer = null;
@@ -10587,7 +10588,7 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
* @hide
*/
protected void destroyHardwareResources() {
- destroyLayer();
+ destroyLayer(true);
}
/**