This closes #84 on avoiding stomp array copies

This commit is contained in:
Clebert Suconic 2015-07-20 14:58:39 +01:00
commit 96b559307c
3 changed files with 4 additions and 17 deletions

View File

@ -35,10 +35,8 @@ public class SimpleBytes
public String getString()
{
if (index == 0) return "";
byte[] realData = new byte[index];
System.arraycopy(contents, 0, realData, 0, realData.length);
return new String(realData, StandardCharsets.UTF_8);
return new String(contents, 0, index, StandardCharsets.UTF_8);
}
public void reset()

View File

@ -312,11 +312,7 @@ public class StompDecoder
{
if (inHeaderName)
{
byte[] data = new byte[pos - headerBytesCopyStart - 1];
System.arraycopy(workingBuffer, headerBytesCopyStart, data, 0, data.length);
headerName = new String(data);
headerName = new String(workingBuffer, headerBytesCopyStart, pos - headerBytesCopyStart - 1);
inHeaderName = false;
@ -339,11 +335,7 @@ public class StompDecoder
break outer;
}
byte[] data = new byte[pos - headerBytesCopyStart - 1];
System.arraycopy(workingBuffer, headerBytesCopyStart, data, 0, data.length);
String headerValue = new String(data);
String headerValue = new String(workingBuffer, headerBytesCopyStart, pos - headerBytesCopyStart - 1);
headers.put(headerName, headerValue);

View File

@ -229,10 +229,7 @@ public class StompFrame
iBuffer++;
}
char[] total = new char[iBuffer];
System.arraycopy(buffer, 0, total, 0, iBuffer);
return new String(total);
return new String(buffer, 0, iBuffer);
}
public void setBody(String body)