From 64ff38669a0e1f945b54c4c62ed9316282a6588d Mon Sep 17 00:00:00 2001 From: Jintao Zhu Date: Fri, 21 Oct 2022 20:19:29 +0800 Subject: Parcel: noop upon double recycle Fix this scenario: Parcel p = Parcel.obtain(); p.recycle(); p.recycle(); // illegal but possible Parcel p1 = Parcel.obtain(); Parcel p2 = Parcel.obtain(); ASSERT_TRUE(p1 != p2); // fail! Signed-off-by: Jintao Zhu Change-Id: Ied25188549801122874a05c2e66969e1f281b346 --- core/java/android/os/Parcel.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java index a6ae663dabb0..8a7f67d1fe33 100644 --- a/core/java/android/os/Parcel.java +++ b/core/java/android/os/Parcel.java @@ -560,9 +560,11 @@ public final class Parcel { */ public final void recycle() { if (mRecycled) { - Log.w(TAG, "Recycle called on unowned Parcel. (recycle twice?) Here: " + Log.wtf(TAG, "Recycle called on unowned Parcel. (recycle twice?) Here: " + Log.getStackTraceString(new Throwable()) + " Original recycle call (if DEBUG_RECYCLE): ", mStack); + + return; } mRecycled = true; -- cgit v1.2.3-59-g8ed1b