diff options
| author | 2018-10-19 02:31:14 +0000 | |
|---|---|---|
| committer | 2018-10-19 02:31:14 +0000 | |
| commit | 36eff60d34740ee2f4b29d30a01e7a8dfd6467c4 (patch) | |
| tree | d946e39f7ebcde66efe57a4dac87bdba1c1899fa | |
| parent | 1b32aa09c11c81d640271f88bd64a40caf876181 (diff) | |
| parent | e0b5e846f881035a6f0c49d2a85c79fa2c3d4c26 (diff) | |
Merge changes from topic "malloc-purge-master"
* changes:
hwui: purge malloc pages on bitmap destruction
wm: recycle bitmaps immediately in TaskSnapshotPersister
| -rw-r--r-- | libs/hwui/hwui/Bitmap.cpp | 1 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/TaskSnapshotPersister.java | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/libs/hwui/hwui/Bitmap.cpp b/libs/hwui/hwui/Bitmap.cpp index b04194f378bc..753557c2e120 100644 --- a/libs/hwui/hwui/Bitmap.cpp +++ b/libs/hwui/hwui/Bitmap.cpp @@ -224,6 +224,7 @@ Bitmap::~Bitmap() { break; case PixelStorageType::Heap: free(mPixelStorage.heap.address); + mallopt(M_PURGE, 0); break; case PixelStorageType::Hardware: auto buffer = mPixelStorage.hardware.buffer; diff --git a/services/core/java/com/android/server/wm/TaskSnapshotPersister.java b/services/core/java/com/android/server/wm/TaskSnapshotPersister.java index 21e807eee1e8..6fd179550f00 100644 --- a/services/core/java/com/android/server/wm/TaskSnapshotPersister.java +++ b/services/core/java/com/android/server/wm/TaskSnapshotPersister.java @@ -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; @@ -361,6 +362,7 @@ class TaskSnapshotPersister { // For snapshots with reduced resolution, do not create or save full sized bitmaps if (mSnapshot.isReducedResolution()) { + swBitmap.recycle(); return true; } @@ -373,6 +375,8 @@ class TaskSnapshotPersister { Slog.e(TAG, "Unable to open " + file + " for persisting.", e); return false; } + reduced.recycle(); + swBitmap.recycle(); return true; } } |