From c12ec70def2a5682c6cd7fdb3adaa82cc34d5bf6 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Tue, 11 Aug 2015 10:26:08 -0400 Subject: [PATCH] Avoid use-after-free race condition when rebasing theme ... by never rebasing the theme. We don't need to do this unless the system theme is configuration-dependent, which it is not currently. Bug: 22943781 Change-Id: I96e695441543379e4d5fdf3cc6f18d9e6cf953b4 --- core/java/android/app/ActivityThread.java | 5 ----- services/java/com/android/server/SystemServer.java | 6 ------ 2 files changed, 11 deletions(-) diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index fd88a0549a101..da21eaffa95b2 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -4235,11 +4235,6 @@ public final class ActivityThread { configDiff = mConfiguration.updateFrom(config); config = applyCompatConfiguration(mCurDefaultDisplayDpi); - - final Theme systemTheme = getSystemContext().getTheme(); - if ((systemTheme.getChangingConfigurations() & configDiff) != 0) { - systemTheme.rebase(); - } } ArrayList callbacks = collectComponentCallbacks(false, config); diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 014527b0a24e6..eb02199c2b30c 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -1024,12 +1024,6 @@ public final class SystemServer { w.getDefaultDisplay().getMetrics(metrics); context.getResources().updateConfiguration(config, metrics); - // The system context's theme may be configuration-dependent. - final Theme systemTheme = context.getTheme(); - if (systemTheme.getChangingConfigurations() != 0) { - systemTheme.rebase(); - } - try { // TODO: use boot phase mPowerManagerService.systemReady(mActivityManagerService.getAppOpsService());