Merge "Fix a race condition in BaseBundle." into main
diff --git a/core/java/android/os/BaseBundle.java b/core/java/android/os/BaseBundle.java
index 9a63394..49ab15a 100644
--- a/core/java/android/os/BaseBundle.java
+++ b/core/java/android/os/BaseBundle.java
@@ -429,10 +429,9 @@
"Lazy values ref count below 0");
// No more lazy values in mMap, so we can recycle the parcel early rather than
// waiting for the next GC run
- if (mLazyValues == 0) {
- Preconditions.checkState(mWeakParcelledData.get() != null,
- "Parcel recycled earlier than expected");
- recycleParcel(mWeakParcelledData.get());
+ Parcel parcel = mWeakParcelledData.get();
+ if (mLazyValues == 0 && parcel != null) {
+ recycleParcel(parcel);
mWeakParcelledData = null;
}
}