diff options
| author | Tetsutoki Shiozawa <tetsutoki.shiozawa@sony.com> | 2017-11-10 17:19:52 +0000 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2017-11-10 17:19:52 +0000 |
| commit | 84806dc35559ea2315f60352cc83e6a2edef4b36 (patch) | |
| tree | e80e3c946e4cc296b339df24a5de132d551f4b4c /core/java | |
| parent | e9b2583c7301c7fef4f32191fab8153064ad32ae (diff) | |
| parent | aab6b51c11f700359b143052261363d4c93ff778 (diff) | |
Merge "Fix: WindowManagerGlobal#setStoppedState failed by IOOBE" am: 4741faa258 am: 949ea9bb2a
am: aab6b51c11
Change-Id: If4be33e18a761a5ad2fb522fad046a2811818f90
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/view/WindowManagerGlobal.java | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/core/java/android/view/WindowManagerGlobal.java b/core/java/android/view/WindowManagerGlobal.java index c7e8dee3da83..cca66d6b8ae0 100644 --- a/core/java/android/view/WindowManagerGlobal.java +++ b/core/java/android/view/WindowManagerGlobal.java @@ -605,9 +605,10 @@ public final class WindowManagerGlobal { public void setStoppedState(IBinder token, boolean stopped) { synchronized (mLock) { int count = mViews.size(); - for (int i = 0; i < count; i++) { + for (int i = count - 1; i >= 0; i--) { if (token == null || mParams.get(i).token == token) { ViewRootImpl root = mRoots.get(i); + // Client might remove the view by "stopped" event. root.setWindowStopped(stopped); } } |
