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);          }  |