Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6db478c8 authored by Steven Moreland's avatar Steven Moreland Committed by Gerrit Code Review
Browse files

Merge "Parcel: better debug recycle"

parents 2b11e008 710f8172
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -247,6 +247,7 @@ public final class Parcel {
    private ArrayMap<Class, Object> mClassCookies;

    private RuntimeException mStack;
    private boolean mRecycled = false;

    /** @hide */
    @TestApi
@@ -528,6 +529,7 @@ public final class Parcel {
        if (res == null) {
            res = new Parcel(0);
        } else {
            res.mRecycled = false;
            if (DEBUG_RECYCLE) {
                res.mStack = new RuntimeException();
            }
@@ -556,7 +558,15 @@ public final class Parcel {
     * the object after this call.
     */
    public final void recycle() {
        if (DEBUG_RECYCLE) mStack = null;
        if (mRecycled) {
            Log.w(TAG, "Recycle called on unowned Parcel. (recycle twice?)", mStack);
        }
        mRecycled = true;

        // We try to reset the entire object here, but in order to be
        // able to print a stack when a Parcel is recycled twice, that
        // is cleared in obtain instead.

        mClassCookies = null;
        freeBuffer();

@@ -5105,6 +5115,7 @@ public final class Parcel {
        if (res == null) {
            res = new Parcel(obj);
        } else {
            res.mRecycled = false;
            if (DEBUG_RECYCLE) {
                res.mStack = new RuntimeException();
            }
@@ -5153,7 +5164,8 @@ public final class Parcel {
    @Override
    protected void finalize() throws Throwable {
        if (DEBUG_RECYCLE) {
            if (mStack != null) {
            // we could always have this log on, but it's spammy
            if (!mRecycled) {
                Log.w(TAG, "Client did not call Parcel.recycle()", mStack);
            }
        }