OSDN Git Service

Merge "Abort accessibility node prefetch if parent node is null" into lmp-mr1-dev
authorAlan Viverette <alanv@google.com>
Wed, 5 Nov 2014 01:41:26 +0000 (01:41 +0000)
committerAndroid (Google) Code Review <android-gerrit@google.com>
Wed, 5 Nov 2014 01:41:28 +0000 (01:41 +0000)
core/java/android/view/AccessibilityInteractionController.java

index 1cadf69..5e05683 100644 (file)
@@ -1109,15 +1109,17 @@ final class AccessibilityInteractionController {
                         || accessibilityViewId == providerHost.getAccessibilityViewId()) {
                     final AccessibilityNodeInfo parent;
                     if (virtualDescendantId != AccessibilityNodeInfo.UNDEFINED_ITEM_ID) {
-                        parent = provider.createAccessibilityNodeInfo(
-                                virtualDescendantId);
+                        parent = provider.createAccessibilityNodeInfo(virtualDescendantId);
                     } else {
-                        parent= provider.createAccessibilityNodeInfo(
+                        parent = provider.createAccessibilityNodeInfo(
                                 AccessibilityNodeProvider.HOST_VIEW_ID);
                     }
-                    if (parent != null) {
-                        outInfos.add(parent);
+                    if (parent == null) {
+                        // Couldn't obtain the parent, which means we have a
+                        // disconnected sub-tree. Abort prefetch immediately.
+                        return;
                     }
+                    outInfos.add(parent);
                     parentNodeId = parent.getParentNodeId();
                     accessibilityViewId = AccessibilityNodeInfo.getAccessibilityViewId(
                             parentNodeId);