diff options
author | Christine Hallstrom <hallstrom@google.com> | 2016-06-20 17:31:34 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-06-20 17:31:34 +0000 |
commit | f7dcb74ec0d00a94c7891e6899b3915ef85e3fac (patch) | |
tree | e43b66864087955adeb4af42008e1a92798fb17d /framework/java/android/bluetooth/BluetoothSocket.java | |
parent | ef150a6649424249d3f1b541cd690d01131261e3 (diff) | |
parent | 4ba50674ea1c362b7b5ff5fa13fc87643c2193f0 (diff) |
Merge \"Fix early termination of while loop in BluetoothSocket#write\" into nyc-mr1-dev
am: 4ba50674ea
Change-Id: I4aede7ac37289fcf23642624db7f15da50163ce3
Diffstat (limited to 'framework/java/android/bluetooth/BluetoothSocket.java')
-rw-r--r-- | framework/java/android/bluetooth/BluetoothSocket.java | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/framework/java/android/bluetooth/BluetoothSocket.java b/framework/java/android/bluetooth/BluetoothSocket.java index ae12c88ff2..ec01beff93 100644 --- a/framework/java/android/bluetooth/BluetoothSocket.java +++ b/framework/java/android/bluetooth/BluetoothSocket.java @@ -532,22 +532,19 @@ public final class BluetoothSocket implements Closeable { if(length <= mMaxTxPacketSize) { mSocketOS.write(b, offset, length); } else { - int tmpOffset = offset; - int tmpLength = mMaxTxPacketSize; - int endIndex = offset + length; - boolean done = false; if(DBG) Log.w(TAG, "WARNING: Write buffer larger than L2CAP packet size!\n" + "Packet will be divided into SDU packets of size " + mMaxTxPacketSize); - do{ + int tmpOffset = offset; + int bytesToWrite = length; + while (bytesToWrite > 0) { + int tmpLength = (bytesToWrite > mMaxTxPacketSize) + ? mMaxTxPacketSize + : bytesToWrite; mSocketOS.write(b, tmpOffset, tmpLength); - tmpOffset += mMaxTxPacketSize; - if((tmpOffset + mMaxTxPacketSize) > endIndex) { - tmpLength = endIndex - tmpOffset; - done = true; - } - } while(!done); - + tmpOffset += tmpLength; + bytesToWrite -= tmpLength; + } } } else { mSocketOS.write(b, offset, length); |