wm: recycle bitmaps immediately in TaskSnapshotPersister

Bitmap created in TaskSnapshotPersister are very short lived and
shouldn't be left around in the Java heap.

Test: boot, switch apps, works
bug 117795621

Exempt-From-Owner-Approval: approved in another branch
Merged-in: I4b5e0db50c2b7adaa71cb0d22535c1b37c7523e8
Change-Id: I4b5e0db50c2b7adaa71cb0d22535c1b37c7523e8
This commit is contained in:
Tim Murray
2018-10-15 16:50:23 -07:00
parent 13d2b5f1ab
commit 59be089837

View File

@@ -17,6 +17,7 @@
package com.android.server.wm;
import static android.graphics.Bitmap.CompressFormat.*;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
@@ -360,6 +361,7 @@ class TaskSnapshotPersister {
// For snapshots with reduced resolution, do not create or save full sized bitmaps
if (mSnapshot.isReducedResolution()) {
swBitmap.recycle();
return true;
}
@@ -372,6 +374,8 @@ class TaskSnapshotPersister {
Slog.e(TAG, "Unable to open " + file + " for persisting.", e);
return false;
}
reduced.recycle();
swBitmap.recycle();
return true;
}
}