diff options
| author | 2024-09-18 05:53:05 +0000 | |
|---|---|---|
| committer | 2024-09-18 05:53:05 +0000 | |
| commit | db6f00a27df0ee761fcada622c023714736bb6ab (patch) | |
| tree | 62c74cef0f7769782f46b392ff37a54e4e43b9b0 | |
| parent | 96d7fac4e34616ce5d297d3d0469e3b8aec5e36e (diff) | |
| parent | 9a998417ab4fc8c08df3435b54037b5540cb6898 (diff) | |
Merge "am:fix NPE and potential infinite loop problem." into main am: 9a998417ab
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3266516
Change-Id: I1e65214dfdc23c31a9b0beb85f0c4cb8816dc5be
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | services/core/java/com/android/server/am/OomAdjusterModernImpl.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/am/OomAdjusterModernImpl.java b/services/core/java/com/android/server/am/OomAdjusterModernImpl.java index 21842db590b0..fb1c2e9a1f9d 100644 --- a/services/core/java/com/android/server/am/OomAdjusterModernImpl.java +++ b/services/core/java/com/android/server/am/OomAdjusterModernImpl.java @@ -331,7 +331,7 @@ public class OomAdjusterModernImpl extends OomAdjuster { void forEachNewNode(int slot, @NonNull Consumer<OomAdjusterArgs> callback) { ProcessRecordNode node = mLastNode[slot].mNext; final ProcessRecordNode tail = mProcessRecordNodes[slot].TAIL; - while (node != tail) { + while (node != null && node != tail) { mTmpOomAdjusterArgs.mApp = node.mApp; if (node.mApp == null) { // TODO(b/336178916) - Temporary logging for root causing b/336178916. @@ -365,7 +365,9 @@ public class OomAdjusterModernImpl extends OomAdjuster { } // Save the next before calling callback, since that may change the node.mNext. final ProcessRecordNode next = node.mNext; - callback.accept(mTmpOomAdjusterArgs); + if (mTmpOomAdjusterArgs.mApp != null) { + callback.accept(mTmpOomAdjusterArgs); + } // There are couple of cases: // a) The current node is moved to another slot // - for this case, we'd need to keep using the "next" node. |