[SettingsProvider] do not close MemoryIntArray if in system server

When a DeviceConfig instantce is created in the system server process, when its cache gets evicted, it can close the MemoryIntArrays kept in the SettingsProvider in the system server.

BUG: 282206516
Test: presubmit
Change-Id: I8df55412aaae12c959ef7222d62602235c060b92
This commit is contained in:
Songchun Fan
2023-05-12 12:41:32 -07:00
parent acf0d15069
commit 457e39b38c

View File

@@ -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) {