Clear bitmap references from display lists as early as possible
Bug #6555840

Apps like Google+ with large bitmaps displayed in listivews could
run into memory issues because of these references.

Change-Id: I39486bda13ce00c5a3b6481139ad54547506a8b4
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 4698203..10b8ff5 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -6800,6 +6800,8 @@
      */
     public void dispatchStartTemporaryDetach() {
         clearAccessibilityFocus();
+        clearDisplayList();
+
         onStartTemporaryDetach();
     }
 
@@ -11455,10 +11457,8 @@
             }
             mAttachInfo.mViewRootImpl.cancelInvalidate(this);
         } else {
-            if (mDisplayList != null) {
-                // Should never happen
-                mDisplayList.invalidate();
-            }
+            // Should never happen
+            clearDisplayList();
         }
 
         mCurrentAnimation = null;
@@ -12236,6 +12236,13 @@
         return mDisplayList;
     }
 
+    private void clearDisplayList() {
+        if (mDisplayList != null) {
+            mDisplayList.invalidate();
+            mDisplayList.clear();
+        }
+    }
+
     /**
      * <p>Calling this method is equivalent to calling <code>getDrawingCache(false)</code>.</p>
      *