diff options
| author | 2024-10-02 15:02:48 -0700 | |
|---|---|---|
| committer | 2024-10-03 10:56:44 +0000 | |
| commit | 666f92f981e7828e4a48b667c121a423227d5bc6 (patch) | |
| tree | a128805ecb24b1e5b137d64b0856525d4b167856 | |
| parent | f87fc38d2fef0235c85c0a193113a4c7e17d21c1 (diff) | |
Fix NPE in LogicalDisplayMapper
For getDisplayIdsByGroupIdLocked, use keyAt() instead of get() to get
the group ID within a loop. Also add null DisplayGroup check.
Flag: EXEMPT bug fix
Bug: 371033049
Test: atest android.app.cts.ActivityManagerTest
Change-Id: I280118a32788ce53735842fd7a6e1c23d7595216
| -rw-r--r-- | services/core/java/com/android/server/display/LogicalDisplayMapper.java | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/display/LogicalDisplayMapper.java b/services/core/java/com/android/server/display/LogicalDisplayMapper.java index bcb600d0f91c..06a910396d6c 100644 --- a/services/core/java/com/android/server/display/LogicalDisplayMapper.java +++ b/services/core/java/com/android/server/display/LogicalDisplayMapper.java @@ -355,8 +355,8 @@ class LogicalDisplayMapper implements DisplayDeviceRepository.Listener { public SparseArray<int[]> getDisplayIdsByGroupIdLocked() { SparseArray<int[]> displayIdsByGroupIds = new SparseArray<>(); for (int i = 0; i < mDisplayGroups.size(); i++) { - int groupId = mDisplayGroups.get(i).getGroupId(); - displayIdsByGroupIds.put(groupId, getDisplayIdsForGroupLocked(groupId)); + final int displayGroupId = mDisplayGroups.keyAt(i); + displayIdsByGroupIds.put(displayGroupId, getDisplayIdsForGroupLocked(displayGroupId)); } return displayIdsByGroupIds; } |