diff options
| author | 2019-08-21 21:39:20 +0000 | |
|---|---|---|
| committer | 2019-08-21 21:39:20 +0000 | |
| commit | e82189ca44a218d15c1fbf18a6f61f9a1866b7ca (patch) | |
| tree | 6796c422c35bc369d6c85e3300ae3772a594d5bc | |
| parent | 69cf7e8e29a63ab6e7999b0ffd86749d2c07ed24 (diff) | |
| parent | d3556f1bc23285110712166c3fe31f2e5736a02d (diff) | |
Merge "Proper fix for the LRU IndexOutOfBoundsException"
| -rw-r--r-- | services/core/java/com/android/server/am/ProcessList.java | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java index 5465309f7826..c0af814cdb38 100644 --- a/services/core/java/com/android/server/am/ProcessList.java +++ b/services/core/java/com/android/server/am/ProcessList.java @@ -65,7 +65,6 @@ import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.os.Message; -import android.os.MessageQueue; import android.os.Process; import android.os.RemoteException; import android.os.StrictMode; @@ -101,11 +100,8 @@ import com.android.server.wm.WindowManagerService; import dalvik.system.VMRuntime; -import libcore.io.IoUtils; - import java.io.File; import java.io.IOException; -import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.nio.ByteBuffer; @@ -2087,10 +2083,10 @@ public final class ProcessList { } } } - if (lrui <= mLruProcessActivityStart) { + if (lrui < mLruProcessActivityStart) { mLruProcessActivityStart--; } - if (lrui <= mLruProcessServiceStart) { + if (lrui < mLruProcessServiceStart) { mLruProcessServiceStart--; } mLruProcesses.remove(lrui); @@ -2622,7 +2618,7 @@ public final class ProcessList { if (!moved) { // Goes to the end of the group. mLruProcesses.remove(i); - mLruProcesses.add(endIndex - 1, subProc); + mLruProcesses.add(endIndex, subProc); if (DEBUG_LRU) Slog.d(TAG_LRU, "Moving " + subProc + " from position " + i + " to end of group @ " @@ -2867,15 +2863,6 @@ public final class ProcessList { pos--; } mLruProcesses.add(pos, app); - if (pos == mLruProcessActivityStart) { - mLruProcessActivityStart++; - } - if (pos == mLruProcessServiceStart) { - // Unless {@code #hasService} is implemented, currently the starting position - // for activity and service are the same, so the incoming position may equal to - // the starting position of service. - mLruProcessServiceStart++; - } // If this process is part of a group, need to pull up any other processes // in that group to be with it. int endIndex = pos - 1; |