Fix issue with 32 bit versions of asyncio
Assuming 64 bit long offsets caused 32 bit tests
to fail
Test: verified async_io_test passes on 32 and 64 bit
Bug: 33846003
Change-Id: I2db126068037f674beeacd5bc30364010c858350
diff --git a/media/mtp/AsyncIO.cpp b/media/mtp/AsyncIO.cpp
index a1a98ab..e77ad38 100644
--- a/media/mtp/AsyncIO.cpp
+++ b/media/mtp/AsyncIO.cpp
@@ -37,15 +37,17 @@
}
void splice_read_func(struct aiocb *aiocbp) {
+ loff_t long_offset = aiocbp->aio_offset;
aiocbp->ret = TEMP_FAILURE_RETRY(splice(aiocbp->aio_fildes,
- (off64_t*) &aiocbp->aio_offset, aiocbp->aio_sink,
+ &long_offset, aiocbp->aio_sink,
NULL, aiocbp->aio_nbytes, 0));
if (aiocbp->ret == -1) aiocbp->error = errno;
}
void splice_write_func(struct aiocb *aiocbp) {
+ loff_t long_offset = aiocbp->aio_offset;
aiocbp->ret = TEMP_FAILURE_RETRY(splice(aiocbp->aio_fildes, NULL,
- aiocbp->aio_sink, (off64_t*) &aiocbp->aio_offset,
+ aiocbp->aio_sink, &long_offset,
aiocbp->aio_nbytes, 0));
if (aiocbp->ret == -1) aiocbp->error = errno;
}