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) ...@@ -209,10 +209,25 @@ protected RawPacket[] createRawPacket(DatagramPacket datagramPacket)
if (pkt == null) if (pkt == null)
pkt = new RawPacket(); 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.setFlags(0);
pkt.setLength(datagramPacket.getLength());
pkt.setOffset(datagramPacket.getOffset());
pkts[0] = pkt; pkts[0] = pkt;
return pkts; return pkts;
...@@ -302,7 +317,6 @@ public int getMinimumTransferSize() ...@@ -302,7 +317,6 @@ public int getMinimumTransferSize()
*/ */
private void poolRawPacket(RawPacket pkt) private void poolRawPacket(RawPacket pkt)
{ {
pkt.setBuffer(null);
pkt.setFlags(0); pkt.setFlags(0);
pkt.setLength(0); pkt.setLength(0);
pkt.setOffset(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