diff options
author | Mike Lockwood <lockwood@android.com> | 2011-03-14 06:55:21 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2011-03-14 06:55:21 -0700 |
commit | 0bea34fc3ec5dfd8d0e7483368875b457b7e2262 (patch) | |
tree | 1e5d36aaa84f53ffaf5aaf01984a61ef5a5ff186 /media | |
parent | c37febe285defa623e456678f63fbd27b3317ebb (diff) | |
parent | dec0b755fff1bf87aafd397ef0dd864f54c587cf (diff) | |
download | frameworks_base-0bea34fc3ec5dfd8d0e7483368875b457b7e2262.zip frameworks_base-0bea34fc3ec5dfd8d0e7483368875b457b7e2262.tar.gz frameworks_base-0bea34fc3ec5dfd8d0e7483368875b457b7e2262.tar.bz2 |
am dec0b755: Merge "MTP host: Fix problems reading large data packets" into honeycomb-mr1
* commit 'dec0b755fff1bf87aafd397ef0dd864f54c587cf':
MTP host: Fix problems reading large data packets
Diffstat (limited to 'media')
-rw-r--r-- | media/mtp/MtpDataPacket.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/media/mtp/MtpDataPacket.cpp b/media/mtp/MtpDataPacket.cpp index 801edb0..0b0c80d 100644 --- a/media/mtp/MtpDataPacket.cpp +++ b/media/mtp/MtpDataPacket.cpp @@ -28,7 +28,7 @@ namespace android { MtpDataPacket::MtpDataPacket() - : MtpPacket(512), + : MtpPacket(16384), // MAX_USBFS_BUFFER_SIZE mOffset(MTP_CONTAINER_HEADER_SIZE) { } @@ -399,10 +399,10 @@ int MtpDataPacket::read(struct usb_request *request) { if (length >= MTP_CONTAINER_HEADER_SIZE) { // look at the length field to see if the data spans multiple packets uint32_t totalLength = MtpPacket::getUInt32(MTP_CONTAINER_LENGTH_OFFSET); + allocate(totalLength); while (totalLength > length) { - allocate(length + mAllocationIncrement); request->buffer = mBuffer + length; - request->buffer_length = mAllocationIncrement; + request->buffer_length = totalLength - length; int ret = transfer(request); if (ret >= 0) length += ret; |