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

Commit d117f6f6 authored by Hao Ke's avatar Hao Ke
Browse files

Added End-of-Parcel check API.

Added End-of-Parcel check API, that verifies there are no
bytes left to be read on the Parcel.

Test: atest -d android.os.cts.ParcelTest#testEnforceNoDataAvail
Bug: 195622897
Bug: 204990745
Change-Id: I3068568d8d4371b071aecd357adeb45a2d7103e4
parent cc09b29e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -31470,6 +31470,7 @@ package android.os {
    method public int dataPosition();
    method public int dataSize();
    method public void enforceInterface(@NonNull String);
    method public void enforceNoDataAvail();
    method public boolean hasFileDescriptors();
    method public boolean hasFileDescriptors(int, int);
    method public byte[] marshall();
+13 −0
Original line number Diff line number Diff line
@@ -845,6 +845,19 @@ public final class Parcel {
        nativeEnforceInterface(mNativePtr, interfaceName);
    }

    /**
     * Verify there are no bytes left to be read on the Parcel.
     *
     * @throws BadParcelableException If the current position hasn't reached the end of the Parcel.
     * When used over binder, this exception should propagate to the caller.
     */
    public void enforceNoDataAvail() {
        final int n = dataAvail();
        if (n > 0) {
            throw new BadParcelableException("Parcel data not fully consumed, unread size: " + n);
        }
    }

    /**
     * Writes the work source uid to the request headers.
     *