diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/SnapshotPersistQueue.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/SnapshotPersistQueue.java b/services/core/java/com/android/server/wm/SnapshotPersistQueue.java index 5e1d7928e96d..eafc8be7bf77 100644 --- a/services/core/java/com/android/server/wm/SnapshotPersistQueue.java +++ b/services/core/java/com/android/server/wm/SnapshotPersistQueue.java @@ -319,7 +319,13 @@ class SnapshotPersistQueue { @Override void onQueuedLocked() { // Remove duplicate request. - mStoreQueueItems.remove(this); + mStoreQueueItems.removeIf(item -> { + if (item.equals(this) && item.mSnapshot != mSnapshot) { + item.mSnapshot.removeReference(TaskSnapshot.REFERENCE_PERSIST); + return true; + } + return false; + }); mStoreQueueItems.offer(this); } |