From 1f99f81bdc5e8430717def157f4abe1176d6a88e Mon Sep 17 00:00:00 2001 From: "Philip P. Moltmann" Date: Tue, 13 Dec 2016 16:32:06 -0800 Subject: [PATCH] Do not write if apply() did not change the file. Bug: 33385963 Test: SharedPreferences CTS tests Change-Id: I39955f8fbcdaa54faa539a3c503e12cb00808136 --- core/java/android/app/SharedPreferencesImpl.java | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/core/java/android/app/SharedPreferencesImpl.java b/core/java/android/app/SharedPreferencesImpl.java index c5a8288b500f..f273cd8670f0 100644 --- a/core/java/android/app/SharedPreferencesImpl.java +++ b/core/java/android/app/SharedPreferencesImpl.java @@ -592,17 +592,17 @@ final class SharedPreferencesImpl implements SharedPreferences { if (mFile.exists()) { boolean needsWrite = false; - if (isFromSyncCommit) { - // Only need to write if the disk state is older than this commit - if (mDiskStateGeneration < mcr.memoryStateGeneration) { + // Only need to write if the disk state is older than this commit + if (mDiskStateGeneration < mcr.memoryStateGeneration) { + if (isFromSyncCommit) { needsWrite = true; - } - } else { - synchronized (this) { - // No need to persist intermediate states. Just wait for the latest state to be - // persisted. - if (mCurrentMemoryStateGeneration == mcr.memoryStateGeneration) { - needsWrite = true; + } else { + synchronized (this) { + // No need to persist intermediate states. Just wait for the latest state to + // be persisted. + if (mCurrentMemoryStateGeneration == mcr.memoryStateGeneration) { + needsWrite = true; + } } } } -- 2.11.0