Add support for writing byte arrays to parcels

b/13418320

Cherrypicked from f0190bff38
https://googleplex-android-review.git.corp.google.com/#/c/433320/

Change-Id: I2285df9e9d3dc8a6a54055b13b352b81660bf45d
This commit is contained in:
Marco Nelissen 2014-03-13 14:17:40 -07:00
parent e0daeb3933
commit 37b44969c0
2 changed files with 12 additions and 0 deletions

View File

@ -101,6 +101,7 @@ public:
status_t writeStrongBinder(const sp<IBinder>& val); status_t writeStrongBinder(const sp<IBinder>& val);
status_t writeWeakBinder(const wp<IBinder>& val); status_t writeWeakBinder(const wp<IBinder>& val);
status_t write(const Flattenable& val); status_t write(const Flattenable& val);
status_t writeByteArray(size_t len, const uint8_t *val);
// Place a native_handle into the parcel (the native_handle's file- // Place a native_handle into the parcel (the native_handle's file-
// descriptors are dup'ed, so it is safe to delete the native_handle // descriptors are dup'ed, so it is safe to delete the native_handle

View File

@ -617,6 +617,17 @@ status_t Parcel::writeInt32(int32_t val)
return writeAligned(val); return writeAligned(val);
} }
status_t Parcel::writeByteArray(size_t len, const uint8_t *val) {
if (!val) {
return writeAligned(-1);
}
status_t ret = writeAligned(len);
if (ret == NO_ERROR) {
ret = write(val, len * sizeof(*val));
}
return ret;
}
status_t Parcel::writeInt64(int64_t val) status_t Parcel::writeInt64(int64_t val)
{ {
return writeAligned(val); return writeAligned(val);