diff options
Diffstat (limited to 'obex')
-rw-r--r-- | obex/javax/obex/PrivateOutputStream.java | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/obex/javax/obex/PrivateOutputStream.java b/obex/javax/obex/PrivateOutputStream.java index ca420af..713f4ae 100644 --- a/obex/javax/obex/PrivateOutputStream.java +++ b/obex/javax/obex/PrivateOutputStream.java @@ -107,18 +107,15 @@ public final class PrivateOutputStream extends OutputStream { ensureOpen(); mParent.ensureNotDone(); - if (count < mMaxPacketSize) { - mArray.write(buffer, offset, count); - } else { - while (remainLength >= mMaxPacketSize) { - mArray.write(buffer, offset1, mMaxPacketSize); - offset1 += mMaxPacketSize; - remainLength = count - offset1; - mParent.continueOperation(true, false); - } - if (remainLength > 0) { - mArray.write(buffer, offset1, remainLength); - } + while ((mArray.size() + remainLength) >= mMaxPacketSize) { + int bufferLeft = mMaxPacketSize - mArray.size(); + mArray.write(buffer, offset1, bufferLeft); + offset1 += bufferLeft; + remainLength -= bufferLeft; + mParent.continueOperation(true, false); + } + if (remainLength > 0) { + mArray.write(buffer, offset1, remainLength); } } |