Fix writeByteArray/writeInt32Array size on x64
writeByteArray writes the size using sizeof(size_t), however it is always read using readInt32(). On devices where sizeof(size_t) != 4 this causes extra bytes to be written. BUG: 22204736 Change-Id: I8d4507b6b616857ef5827f1fe9da0907d09abf0e
This commit is contained in:
parent
fe608c5e3c
commit
e59cb43eda
@ -735,9 +735,9 @@ status_t Parcel::writeInt32Array(size_t len, const int32_t *val) {
|
||||
}
|
||||
|
||||
if (!val) {
|
||||
return writeAligned(-1);
|
||||
return writeInt32(-1);
|
||||
}
|
||||
status_t ret = writeAligned(len);
|
||||
status_t ret = writeInt32(static_cast<uint32_t>(len));
|
||||
if (ret == NO_ERROR) {
|
||||
ret = write(val, len * sizeof(*val));
|
||||
}
|
||||
@ -751,9 +751,9 @@ status_t Parcel::writeByteArray(size_t len, const uint8_t *val) {
|
||||
}
|
||||
|
||||
if (!val) {
|
||||
return writeAligned(-1);
|
||||
return writeInt32(-1);
|
||||
}
|
||||
status_t ret = writeAligned(len);
|
||||
status_t ret = writeInt32(static_cast<uint32_t>(len));
|
||||
if (ret == NO_ERROR) {
|
||||
ret = write(val, len * sizeof(*val));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user