From 10e9d1d7ad6296fca388451c71238cc43fe54756 Mon Sep 17 00:00:00 2001 From: Chris Craik Date: Thu, 6 Sep 2012 14:42:44 -0700 Subject: [PATCH] Log if a view fails to fit in the drawing cache Large software layers won't draw if they're larger than the size of the drawing cache, in which case this log will be triggered. bug:7078391 Change-Id: Ib42a060b8e3b3642417df9243a086aa15b2989b1 --- core/java/android/view/View.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index b6f07fac55132..7cf2202f200a9 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -12537,10 +12537,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback, final boolean opaque = drawingCacheBackgroundColor != 0 || isOpaque(); final boolean use32BitCache = attachInfo != null && attachInfo.mUse32BitDrawingCache; - if (width <= 0 || height <= 0 || - // Projected bitmap size in bytes - (width * height * (opaque && !use32BitCache ? 2 : 4) > - ViewConfiguration.get(mContext).getScaledMaximumDrawingCacheSize())) { + final int projectedBitmapSize = width * height * (opaque && !use32BitCache ? 2 : 4); + final int drawingCacheSize = + ViewConfiguration.get(mContext).getScaledMaximumDrawingCacheSize(); + if (width <= 0 || height <= 0 || projectedBitmapSize > drawingCacheSize) { + Log.w(VIEW_LOG_TAG, "View too large to fit into drawing cache, needs " + + projectedBitmapSize + " bytes, only " + + drawingCacheSize + " available"); destroyDrawingCache(); mCachingFailed = true; return;