{"thread":{"id":"19997","subject":"[JGIT PATCH] Avoid growing WorkingTreeIterator's path multiple times","startedAt":"2009-07-01T22:45:53Z","lastAt":"2009-07-01T22:45:53Z","messageCount":1,"participants":["Shawn O. Pearce"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"117330","messageId":"1246488353-16867-1-git-send-email-spearce@spearce.org","threadId":"19997","inReplyTo":null,"subject":"[JGIT PATCH] Avoid growing WorkingTreeIterator's path multiple times","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2009-07-01T22:45:53Z","receivedAt":"2009-07-01T22:45:53Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"If the current path buffer isn't big enough for the current file\nname to be appended onto it, we can immediately grow it to the\ncorrect target size by using the new ensurePathCapacity method.\nThis may save us from growing the buffer twice in rapid succession\nif the path name component is really long, and the current buffer\nis still the fairly small default size.\n\nSigned-off-by: Shawn O. Pearce <spearce@spearce.org>\nCC: Constantine Plotnikov <constantine.plotnikov@gmail.com>\n---\n .../spearce/jgit/treewalk/WorkingTreeIterator.java |    3 +--\n 1 files changed, 1 insertions(+), 2 deletions(-)\n\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/treewalk/WorkingTreeIterator.java b/org.spearce.jgit/src/org/spearce/jgit/treewalk/WorkingTreeIterator.java\nindex 836b01a..d4291ea 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/treewalk/WorkingTreeIterator.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/treewalk/WorkingTreeIterator.java\n@@ -258,8 +258,7 @@ private void parseEntry() {\n \t\tmode = e.getMode().getBits();\n \n \t\tfinal int nameLen = e.encodedNameLen;\n-\t\twhile (pathOffset + nameLen > path.length)\n-\t\t\tgrowPath(pathOffset);\n+\t\tensurePathCapacity(pathOffset + nameLen, pathOffset);\n \t\tSystem.arraycopy(e.encodedName, 0, path, pathOffset, nameLen);\n \t\tpathLen = pathOffset + nameLen;\n \t}\n-- \n1.6.3.3.420.gd4b46\n"}]}