summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Tim Murray <timmurray@google.com> 2018-10-19 02:31:14 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-10-19 02:31:14 +0000
commit36eff60d34740ee2f4b29d30a01e7a8dfd6467c4 (patch)
treed946e39f7ebcde66efe57a4dac87bdba1c1899fa
parent1b32aa09c11c81d640271f88bd64a40caf876181 (diff)
parente0b5e846f881035a6f0c49d2a85c79fa2c3d4c26 (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.cpp1
-rw-r--r--services/core/java/com/android/server/wm/TaskSnapshotPersister.java4
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;
}
}