libui: fix passing Fence object over binder

The Fence object was writing a size_t into the binder buffer
in flatten, which changes size if the producer and consumer
are running in a 32-bit and a 64-bit process.  Use a uint32_t
instead.

Change-Id: Ifed526513800ce27f9d605101cddd922292cca37
This commit is contained in:
Colin Cross 2014-04-14 18:43:12 -07:00
parent 27f8840f22
commit 288f2ef629

View File

@ -138,7 +138,7 @@ status_t Fence::flatten(void*& buffer, size_t& size, int*& fds, size_t& count) c
if (size < getFlattenedSize() || count < getFdCount()) {
return NO_MEMORY;
}
FlattenableUtils::write(buffer, size, getFdCount());
FlattenableUtils::write(buffer, size, (uint32_t)getFdCount());
if (isValid()) {
*fds++ = mFenceFd;
count--;
@ -156,7 +156,7 @@ status_t Fence::unflatten(void const*& buffer, size_t& size, int const*& fds, si
return NO_MEMORY;
}
size_t numFds;
uint32_t numFds;
FlattenableUtils::read(buffer, size, numFds);
if (numFds > 1) {