Merge "Added End-of-Parcel check API."

This commit is contained in:
Hao Ke
2021-12-03 23:54:12 +00:00
committed by Gerrit Code Review
2 changed files with 14 additions and 0 deletions

View File

@@ -31471,6 +31471,7 @@ package android.os {
method public int dataPosition(); method public int dataPosition();
method public int dataSize(); method public int dataSize();
method public void enforceInterface(@NonNull String); method public void enforceInterface(@NonNull String);
method public void enforceNoDataAvail();
method public boolean hasFileDescriptors(); method public boolean hasFileDescriptors();
method public boolean hasFileDescriptors(int, int); method public boolean hasFileDescriptors(int, int);
method public byte[] marshall(); method public byte[] marshall();

View File

@@ -845,6 +845,19 @@ public final class Parcel {
nativeEnforceInterface(mNativePtr, interfaceName); 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. * Writes the work source uid to the request headers.
* *