summaryrefslogtreecommitdiffstats
path: root/media/libmedia/IDataSource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'media/libmedia/IDataSource.cpp')
-rw-r--r--media/libmedia/IDataSource.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/media/libmedia/IDataSource.cpp b/media/libmedia/IDataSource.cpp
index 76d1d68ef8..a969c7db6e 100644
--- a/media/libmedia/IDataSource.cpp
+++ b/media/libmedia/IDataSource.cpp
@@ -50,8 +50,16 @@ struct BpDataSource : public BpInterface<IDataSource> {
data.writeInterfaceToken(IDataSource::getInterfaceDescriptor());
data.writeInt64(offset);
data.writeInt64(size);
- remote()->transact(READ_AT, data, &reply);
- return reply.readInt64();
+ status_t err = remote()->transact(READ_AT, data, &reply);
+ if (err != OK) {
+ return err;
+ }
+ int64_t value = 0;
+ err = reply.readInt64(&value);
+ if (err != OK) {
+ return err;
+ }
+ return (ssize_t)value;
}
virtual status_t getSize(off64_t* size) {