Skip to content

Commit 290d3d8

Browse files
Joel Nelsonxerial
authored andcommitted
avoid creating MessageBuffer needlessly
1 parent d8f0366 commit 290d3d8

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

msgpack-core/src/main/java/org/msgpack/core/MessageUnpacker.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1597,7 +1597,20 @@ public byte[] readPayload(int length)
15971597
public void readPayload(byte[] dst, int off, int len)
15981598
throws IOException
15991599
{
1600-
readPayload(MessageBuffer.wrap(dst), off, len);
1600+
while (true) {
1601+
int bufferRemaining = buffer.size() - position;
1602+
if (bufferRemaining >= len) {
1603+
buffer.getBytes(position, dst, off, len);
1604+
position += len;
1605+
return;
1606+
}
1607+
buffer.getBytes(position, dst, off, bufferRemaining);
1608+
off += bufferRemaining;
1609+
len -= bufferRemaining;
1610+
position += bufferRemaining;
1611+
1612+
nextBuffer();
1613+
}
16011614
}
16021615

16031616
/**

0 commit comments

Comments
 (0)