summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author zhuning3 <zhuning3@xiaomi.com> 2024-04-22 14:49:35 +0800
committer ning zhu <zhuning3@xiaomi.com> 2024-04-22 07:34:37 +0000
commit998a2bbbb59ebc86d1b5ff3d3543cec87f87961c (patch)
tree074775e9f97376096955563bc05bc8212b951742
parentc40bde3f8e0b3fd98f3ae0579770b9947322c229 (diff)
Fix nullptr exception when using do-while
Using of 'instanceof' cannot determine whether 'nextParent' is non-null during the first loop in do-while, so when 'focused.getParent()' outside the loop returns null, the loop body will trigger a null pointer exception. Therefore, the conditional judgment needs to be covered in every loop. Test:UAT Bug: 336205346 Change-Id: I78374410d928009ea9b99630cae2fbea24ba8ab6 Signed-off-by: zhuning3 <zhuning3@xiaomi.corp-partner.google.com>
-rw-r--r--core/java/android/view/FocusFinder.java4
1 files changed, 2 insertions, 2 deletions
diff --git a/core/java/android/view/FocusFinder.java b/core/java/android/view/FocusFinder.java
index 064bc6947fc4..5c49e24439bb 100644
--- a/core/java/android/view/FocusFinder.java
+++ b/core/java/android/view/FocusFinder.java
@@ -129,7 +129,7 @@ public class FocusFinder {
}
ViewGroup effective = null;
ViewParent nextParent = focused.getParent();
- do {
+ while (nextParent instanceof ViewGroup) {
if (nextParent == root) {
return effective != null ? effective : root;
}
@@ -143,7 +143,7 @@ public class FocusFinder {
effective = vg;
}
nextParent = nextParent.getParent();
- } while (nextParent instanceof ViewGroup);
+ }
return root;
}