Loading services/core/java/com/android/server/compat/CompatConfig.java +15 −8 Original line number Original line Diff line number Diff line Loading @@ -50,6 +50,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.IOException; import java.io.InputStream; import java.io.InputStream; import java.io.PrintWriter; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashSet; import java.util.HashSet; import java.util.List; import java.util.List; import java.util.Set; import java.util.Set; Loading Loading @@ -595,10 +596,17 @@ final class CompatConfig { * Rechecks all the existing overrides for a package. * Rechecks all the existing overrides for a package. */ */ void recheckOverrides(String packageName) { void recheckOverrides(String packageName) { // Local cache of compat changes. Holding a lock on mChanges for the whole duration of the // method will cause a deadlock. List<CompatChange> changes; synchronized (mChanges) { synchronized (mChanges) { boolean shouldInvalidateCache = false; changes = new ArrayList<>(mChanges.size()); for (int idx = 0; idx < mChanges.size(); ++idx) { for (int idx = 0; idx < mChanges.size(); ++idx) { CompatChange c = mChanges.valueAt(idx); changes.add(mChanges.valueAt(idx)); } } boolean shouldInvalidateCache = false; for (CompatChange c: changes) { OverrideAllowedState allowedState = OverrideAllowedState allowedState = mOverrideValidator.getOverrideAllowedState(c.getId(), packageName); mOverrideValidator.getOverrideAllowedState(c.getId(), packageName); shouldInvalidateCache |= c.recheckOverride(packageName, allowedState, mContext); shouldInvalidateCache |= c.recheckOverride(packageName, allowedState, mContext); Loading @@ -607,7 +615,6 @@ final class CompatConfig { invalidateCache(); invalidateCache(); } } } } } void registerContentObserver() { void registerContentObserver() { mOverrideValidator.registerContentObserver(); mOverrideValidator.registerContentObserver(); Loading Loading
services/core/java/com/android/server/compat/CompatConfig.java +15 −8 Original line number Original line Diff line number Diff line Loading @@ -50,6 +50,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.IOException; import java.io.InputStream; import java.io.InputStream; import java.io.PrintWriter; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashSet; import java.util.HashSet; import java.util.List; import java.util.List; import java.util.Set; import java.util.Set; Loading Loading @@ -595,10 +596,17 @@ final class CompatConfig { * Rechecks all the existing overrides for a package. * Rechecks all the existing overrides for a package. */ */ void recheckOverrides(String packageName) { void recheckOverrides(String packageName) { // Local cache of compat changes. Holding a lock on mChanges for the whole duration of the // method will cause a deadlock. List<CompatChange> changes; synchronized (mChanges) { synchronized (mChanges) { boolean shouldInvalidateCache = false; changes = new ArrayList<>(mChanges.size()); for (int idx = 0; idx < mChanges.size(); ++idx) { for (int idx = 0; idx < mChanges.size(); ++idx) { CompatChange c = mChanges.valueAt(idx); changes.add(mChanges.valueAt(idx)); } } boolean shouldInvalidateCache = false; for (CompatChange c: changes) { OverrideAllowedState allowedState = OverrideAllowedState allowedState = mOverrideValidator.getOverrideAllowedState(c.getId(), packageName); mOverrideValidator.getOverrideAllowedState(c.getId(), packageName); shouldInvalidateCache |= c.recheckOverride(packageName, allowedState, mContext); shouldInvalidateCache |= c.recheckOverride(packageName, allowedState, mContext); Loading @@ -607,7 +615,6 @@ final class CompatConfig { invalidateCache(); invalidateCache(); } } } } } void registerContentObserver() { void registerContentObserver() { mOverrideValidator.registerContentObserver(); mOverrideValidator.registerContentObserver(); Loading