From 00a50401478171b900b5f1ea16c43618293706ce Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Wed, 16 Mar 2011 21:33:25 -0700 Subject: [PATCH] PacketLineIn: Reuse internal lineBuffer for small strings Most "ACK %s continue", "ACK %s common", "NAK" strings that are read by the readACK() method and readString() are shorter than the lineBuffer already available. Reuse that buffer when reading from the network stream and converting to a string with RawParseUtils to avoid unnecessary temporary byte array allocations. Change-Id: Ibc778d9f7721943a065041d80fc427ea50d90fff Signed-off-by: Shawn O. Pearce --- .../src/org/eclipse/jgit/transport/PacketLineIn.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PacketLineIn.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PacketLineIn.java index d3264d5f23..01d92770bc 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PacketLineIn.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PacketLineIn.java @@ -113,7 +113,12 @@ class PacketLineIn { if (len == 0) return ""; - final byte[] raw = new byte[len]; + byte[] raw; + if (len <= lineBuffer.length) + raw = lineBuffer; + else + raw = new byte[len]; + IO.readFully(in, raw, 0, len); if (raw[len - 1] == '\n') len--; -- 2.39.5