Skip to content
Snippets Groups Projects
Commit 33944cd8 authored by Boris Grozev's avatar Boris Grozev
Browse files

Reuse the byte[] in a RawPacket, and copy the contents.

parent 8dabb513
No related branches found
No related tags found
No related merge requests found
......@@ -209,10 +209,25 @@ protected RawPacket[] createRawPacket(DatagramPacket datagramPacket)
if (pkt == null)
pkt = new RawPacket();
pkt.setBuffer(datagramPacket.getData());
byte[] buffer = pkt.getBuffer();
int length = datagramPacket.getLength();
if (buffer == null || buffer.length < length)
{
buffer = new byte[length];
pkt.setBuffer(buffer);
}
System.arraycopy(
datagramPacket.getData(),
datagramPacket.getOffset(),
buffer,
0,
length);
pkt.setBuffer(buffer);
pkt.setOffset(0);
pkt.setLength(length);
pkt.setFlags(0);
pkt.setLength(datagramPacket.getLength());
pkt.setOffset(datagramPacket.getOffset());
pkts[0] = pkt;
return pkts;
......@@ -302,7 +317,6 @@ public int getMinimumTransferSize()
*/
private void poolRawPacket(RawPacket pkt)
{
pkt.setBuffer(null);
pkt.setFlags(0);
pkt.setLength(0);
pkt.setOffset(0);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment