summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2011-08-02 16:37:58 -0700
committerDianne Hackborn <hackbod@google.com>2011-08-02 16:37:58 -0700
commit6311d0a079702b29984c0d31937345be105e1a5e (patch)
treec9d5ebf9e2d1f6685220fe2e31ad8a4e21366a11
parent7374d9728bd0e8847bab723608ebab3542e8157e (diff)
downloadframeworks_base-6311d0a079702b29984c0d31937345be105e1a5e.zip
frameworks_base-6311d0a079702b29984c0d31937345be105e1a5e.tar.gz
frameworks_base-6311d0a079702b29984c0d31937345be105e1a5e.tar.bz2
Clear the bitmap from the canvas in a lot of places.
Change-Id: I6b2071ac7b348c473b9bdd1b972d095aebbb4fb3
-rw-r--r--core/java/android/app/ActivityThread.java1
-rw-r--r--core/java/android/app/LauncherActivity.java2
-rw-r--r--core/java/android/view/View.java3
-rw-r--r--core/java/android/view/ViewDebug.java3
-rw-r--r--core/java/android/widget/StackView.java2
-rw-r--r--graphics/java/android/graphics/Bitmap.java1
-rw-r--r--media/java/android/media/ThumbnailUtils.java1
-rw-r--r--media/java/android/media/videoeditor/MediaArtistNativeHelper.java2
-rwxr-xr-xmedia/java/android/media/videoeditor/MediaImageItem.java1
-rwxr-xr-xmedia/java/android/media/videoeditor/OverlayFrame.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java1
-rw-r--r--packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java1
-rw-r--r--policy/src/com/android/internal/policy/impl/IconUtilities.java1
-rw-r--r--services/java/com/android/server/connectivity/Vpn.java4
-rw-r--r--services/java/com/android/server/wm/WindowManagerService.java1
15 files changed, 23 insertions, 2 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 8931675..c566104 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -2503,6 +2503,7 @@ public final class ActivityThread {
mAvailThumbnailBitmap = thumbnail;
thumbnail = null;
}
+ cv.setBitmap(null);
}
} catch (Exception e) {
diff --git a/core/java/android/app/LauncherActivity.java b/core/java/android/app/LauncherActivity.java
index 7b9bd60..8eb9ba4 100644
--- a/core/java/android/app/LauncherActivity.java
+++ b/core/java/android/app/LauncherActivity.java
@@ -314,6 +314,7 @@ public abstract class LauncherActivity extends ListActivity {
icon.draw(canvas);
icon.setBounds(mOldBounds);
icon = new BitmapDrawable(getResources(), thumb);
+ canvas.setBitmap(null);
} else if (iconWidth < width && iconHeight < height) {
final Bitmap.Config c = Bitmap.Config.ARGB_8888;
final Bitmap thumb = Bitmap.createBitmap(mIconWidth, mIconHeight, c);
@@ -326,6 +327,7 @@ public abstract class LauncherActivity extends ListActivity {
icon.draw(canvas);
icon.setBounds(mOldBounds);
icon = new BitmapDrawable(getResources(), thumb);
+ canvas.setBitmap(null);
}
}
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 935281a..ad76928 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -10221,6 +10221,7 @@ public class View implements Drawable.Callback2, KeyEvent.Callback, Accessibilit
}
canvas.restoreToCount(restoreCount);
+ canvas.setBitmap(null);
if (attachInfo != null) {
// Restore the cached Canvas for our siblings
@@ -10289,9 +10290,9 @@ public class View implements Drawable.Callback2, KeyEvent.Callback, Accessibilit
mPrivateFlags = flags;
canvas.restoreToCount(restoreCount);
+ canvas.setBitmap(null);
if (attachInfo != null) {
- canvas.setBitmap(null);
// Restore the cached Canvas for our siblings
attachInfo.mCanvas = canvas;
}
diff --git a/core/java/android/view/ViewDebug.java b/core/java/android/view/ViewDebug.java
index 96e550e..65e72c9 100644
--- a/core/java/android/view/ViewDebug.java
+++ b/core/java/android/view/ViewDebug.java
@@ -1094,6 +1094,9 @@ public class ViewDebug {
}
public void post(Object... data) {
+ if (data[1] != null) {
+ ((Canvas) data[1]).setBitmap(null);
+ }
if (data[0] != null) {
((Bitmap) data[0]).recycle();
}
diff --git a/core/java/android/widget/StackView.java b/core/java/android/widget/StackView.java
index c4ba7c8..4b08f2d 100644
--- a/core/java/android/widget/StackView.java
+++ b/core/java/android/widget/StackView.java
@@ -1406,6 +1406,7 @@ public class StackView extends AdapterViewAnimator {
v.setTranslationX(translationX);
drawOutline(mCanvas, bitmap);
+ mCanvas.setBitmap(null);
return bitmap;
}
@@ -1417,6 +1418,7 @@ public class StackView extends AdapterViewAnimator {
dest.drawColor(0, PorterDuff.Mode.CLEAR);
dest.setMatrix(mIdentityMatrix);
dest.drawBitmap(mask, xy[0], xy[1], mHolographicPaint);
+ mMaskCanvas.setBitmap(null);
mask.recycle();
}
}
diff --git a/graphics/java/android/graphics/Bitmap.java b/graphics/java/android/graphics/Bitmap.java
index 40d54bb..3fc6463 100644
--- a/graphics/java/android/graphics/Bitmap.java
+++ b/graphics/java/android/graphics/Bitmap.java
@@ -567,6 +567,7 @@ public final class Bitmap implements Parcelable {
canvas.setBitmap(bitmap);
canvas.drawBitmap(source, srcR, dstR, paint);
+ canvas.setBitmap(null);
return bitmap;
}
diff --git a/media/java/android/media/ThumbnailUtils.java b/media/java/android/media/ThumbnailUtils.java
index 7c181ee..078d4af 100644
--- a/media/java/android/media/ThumbnailUtils.java
+++ b/media/java/android/media/ThumbnailUtils.java
@@ -387,6 +387,7 @@ public class ThumbnailUtils {
if (recycle) {
source.recycle();
}
+ c.setBitmap(null);
return b2;
}
float bitmapWidthF = source.getWidth();
diff --git a/media/java/android/media/videoeditor/MediaArtistNativeHelper.java b/media/java/android/media/videoeditor/MediaArtistNativeHelper.java
index 6b0fb12..5bfdcdb 100644
--- a/media/java/android/media/videoeditor/MediaArtistNativeHelper.java
+++ b/media/java/android/media/videoeditor/MediaArtistNativeHelper.java
@@ -3761,6 +3761,7 @@ class MediaArtistNativeHelper {
final Canvas canvas = new Canvas(bitmap);
canvas.drawBitmap(tempBitmap, new Rect(0, 0, newWidth, newHeight),
new Rect(0, 0, width, height), sResizePaint);
+ canvas.setBitmap(null);
}
if (tempBitmap != null) {
@@ -3837,6 +3838,7 @@ class MediaArtistNativeHelper {
final Canvas canvas = new Canvas(bitmaps[i]);
canvas.drawBitmap(tempBitmap, new Rect(0, 0, newWidth, newHeight),
new Rect(0, 0, width, height), sResizePaint);
+ canvas.setBitmap(null);
}
}
diff --git a/media/java/android/media/videoeditor/MediaImageItem.java b/media/java/android/media/videoeditor/MediaImageItem.java
index 73cc7e2..f0cc1fe 100755
--- a/media/java/android/media/videoeditor/MediaImageItem.java
+++ b/media/java/android/media/videoeditor/MediaImageItem.java
@@ -1008,6 +1008,7 @@ public class MediaImageItem extends MediaItem {
srcBitmap.getHeight()),
new Rect(0, 0, (int)bitmapWidth,
(int)bitmapHeight), sResizePaint);
+ canvas.setBitmap(null);
/**
* Release the source bitmap
*/
diff --git a/media/java/android/media/videoeditor/OverlayFrame.java b/media/java/android/media/videoeditor/OverlayFrame.java
index 131f5f0..d159df2 100755
--- a/media/java/android/media/videoeditor/OverlayFrame.java
+++ b/media/java/android/media/videoeditor/OverlayFrame.java
@@ -420,6 +420,7 @@ public class OverlayFrame extends Overlay {
}
overlayCanvas.drawBitmap(overlayBitmap, srcRect, destRect, sResizePaint);
+ overlayCanvas.setBitmap(null);
/*
* Write to the dest file
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
index c896046..d74b548 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
@@ -501,6 +501,7 @@ public class RecentsPanelView extends RelativeLayout
new RectF(mGlowBitmapPaddingLeftPx, mGlowBitmapPaddingTopPx,
outBitmap.getWidth() - mGlowBitmapPaddingRightPx,
outBitmap.getHeight() - mGlowBitmapPaddingBottomPx), paint);
+ canvas.setBitmap(null);
}
return outBitmap;
}
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
index 3a47e6e..fc21929 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
@@ -294,6 +294,7 @@ class GlobalScreenshot {
c.rotate(360f - degrees);
c.translate(-dims[0] / 2, -dims[1] / 2);
c.drawBitmap(mScreenBitmap, 0, 0, null);
+ c.setBitmap(null);
mScreenBitmap = ss;
}
diff --git a/policy/src/com/android/internal/policy/impl/IconUtilities.java b/policy/src/com/android/internal/policy/impl/IconUtilities.java
index 99055cf..4564f90 100644
--- a/policy/src/com/android/internal/policy/impl/IconUtilities.java
+++ b/policy/src/com/android/internal/policy/impl/IconUtilities.java
@@ -186,6 +186,7 @@ final class IconUtilities {
mask.recycle();
dest.drawBitmap(src, 0, 0, mPaint);
+ dest.setBitmap(null);
return result;
}
diff --git a/services/java/com/android/server/connectivity/Vpn.java b/services/java/com/android/server/connectivity/Vpn.java
index 9cb772e..ecbad09 100644
--- a/services/java/com/android/server/connectivity/Vpn.java
+++ b/services/java/com/android/server/connectivity/Vpn.java
@@ -183,7 +183,9 @@ public class Vpn extends INetworkManagementEventObserver.Stub {
android.R.dimen.notification_large_icon_height);
icon.setBounds(0, 0, width, height);
bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
- icon.draw(new Canvas(bitmap));
+ Canvas c = new Canvas(bitmap);
+ icon.draw(c);
+ c.setBitmap(null);
}
// Configure the interface. Abort if any of these steps fails.
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index f8059f5..e0b5e17 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -4919,6 +4919,7 @@ public class WindowManagerService extends IWindowManager.Stub
matrix.postTranslate(-(int)(frame.left*scale), -(int)(frame.top*scale));
Canvas canvas = new Canvas(bm);
canvas.drawBitmap(rawss, matrix, null);
+ canvas.setBitmap(null);
rawss.recycle();
return bm;