diff options
| -rw-r--r-- | api/test-current.txt | 1 | ||||
| -rw-r--r-- | core/java/android/view/accessibility/AccessibilityNodeInfo.java | 15 |
2 files changed, 11 insertions, 5 deletions
diff --git a/api/test-current.txt b/api/test-current.txt index 4cfe4010397e..b02da04bbcd1 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -1038,6 +1038,7 @@ package android.view.accessibility { public class AccessibilityNodeInfo implements android.os.Parcelable { method public static void setNumInstancesInUseCounter(java.util.concurrent.atomic.AtomicInteger); + method public void writeToParcelNoRecycle(android.os.Parcel, int); } public final class AccessibilityWindowInfo implements android.os.Parcelable { diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfo.java b/core/java/android/view/accessibility/AccessibilityNodeInfo.java index 23e7d6191276..417a72530b72 100644 --- a/core/java/android/view/accessibility/AccessibilityNodeInfo.java +++ b/core/java/android/view/accessibility/AccessibilityNodeInfo.java @@ -3173,6 +3173,15 @@ public class AccessibilityNodeInfo implements Parcelable { */ @Override public void writeToParcel(Parcel parcel, int flags) { + writeToParcelNoRecycle(parcel, flags); + // Since instances of this class are fetched via synchronous i.e. blocking + // calls in IPCs we always recycle as soon as the instance is marshaled. + recycle(); + } + + /** @hide */ + @TestApi + public void writeToParcelNoRecycle(Parcel parcel, int flags) { // Write bit set of indices of fields with values differing from default long nonDefaultFields = 0; int fieldIndex = 0; // index of the current field @@ -3406,10 +3415,6 @@ public class AccessibilityNodeInfo implements Parcelable { + " vs " + fieldIndex); } } - - // Since instances of this class are fetched via synchronous i.e. blocking - // calls in IPCs we always recycle as soon as the instance is marshaled. - recycle(); } /** @@ -3557,7 +3562,7 @@ public class AccessibilityNodeInfo implements Parcelable { if (isBitSet(nonDefaultFields, fieldIndex++)) { mContentDescription = parcel.readCharSequence(); } - if (isBitSet(nonDefaultFields, fieldIndex++)) mPaneTitle = parcel.readString(); + if (isBitSet(nonDefaultFields, fieldIndex++)) mPaneTitle = parcel.readCharSequence(); if (isBitSet(nonDefaultFields, fieldIndex++)) mTooltipText = parcel.readCharSequence(); if (isBitSet(nonDefaultFields, fieldIndex++)) mViewIdResourceName = parcel.readString(); |