diff options
| -rw-r--r-- | core/java/android/provider/Settings.java | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index fd5e206990db..5c79f697ba13 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -3036,7 +3036,9 @@ public final class Settings { public void destroy() { try { - if (!mArray.isClosed()) { + // If this process is the system server process, mArray is the same object as + // the memory int array kept inside SettingsProvider, so skipping the close() + if (!Settings.isInSystemServer() && !mArray.isClosed()) { mArray.close(); } } catch (IOException e) { |