summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ashley Holton <ashleyholton@google.com> 2024-10-02 15:02:48 -0700
committer Rupesh Bansal <brup@google.com> 2024-10-03 10:56:44 +0000
commit666f92f981e7828e4a48b667c121a423227d5bc6 (patch)
treea128805ecb24b1e5b137d64b0856525d4b167856
parentf87fc38d2fef0235c85c0a193113a4c7e17d21c1 (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.java4
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;
}