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) {
|
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) {
|
if (ret == NO_ERROR) {
|
||||||
ret = write(val, len * sizeof(*val));
|
ret = write(val, len * sizeof(*val));
|
||||||
}
|
}
|
||||||
@ -751,9 +751,9 @@ status_t Parcel::writeByteArray(size_t len, const uint8_t *val) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!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) {
|
if (ret == NO_ERROR) {
|
||||||
ret = write(val, len * sizeof(*val));
|
ret = write(val, len * sizeof(*val));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user