Simplify NoteParser use of prefix.length()

Sasa pointed out we only ever use the length here, so instead of
holding onto the AbbreviatedObjectId, lets just hold onto the length
as a primitive int.

Change-Id: I2444f59f9fe5ddcaea4a3537d3f1064736ae3215
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
CC: Sasa Zivkov <zivkov@gmail.com>
This commit is contained in:
Shawn O. Pearce 2010-12-13 10:21:04 -08:00 committed by Chris Aniszczyk
parent 2bc13104a8
commit 5ac5871d16
1 changed files with 9 additions and 9 deletions

View File

@ -91,7 +91,7 @@ static InMemoryNoteBucket parse(AbbreviatedObjectId prefix,
return new NoteParser(prefix, reader, treeId).parse();
}
private final AbbreviatedObjectId prefix;
private final int prefixLen;
private final int pathPadding;
@ -99,16 +99,16 @@ static InMemoryNoteBucket parse(AbbreviatedObjectId prefix,
private NonNoteEntry lastNonNote;
private NoteParser(AbbreviatedObjectId p, ObjectReader r, ObjectId t)
private NoteParser(AbbreviatedObjectId prefix, ObjectReader r, ObjectId t)
throws IncorrectObjectTypeException, IOException {
super(encodeASCII(p.name()), r, t);
prefix = p;
super(encodeASCII(prefix.name()), r, t);
prefixLen = prefix.length();
// Our path buffer has a '/' that we don't want after the prefix.
// Drop it by shifting the path down one position.
pathPadding = 0 < prefix.length() ? 1 : 0;
pathPadding = 0 < prefixLen ? 1 : 0;
if (0 < pathPadding)
System.arraycopy(path, 0, path, pathPadding, prefix.length());
System.arraycopy(path, 0, path, pathPadding, prefixLen);
}
private InMemoryNoteBucket parse() {
@ -130,11 +130,11 @@ else if (getNameLength() == 2 && isHex() && isTree())
}
// If we cannot determine the style used, assume its a leaf.
return new LeafBucket(prefix.length());
return new LeafBucket(prefixLen);
}
private LeafBucket parseLeafTree() {
final LeafBucket leaf = new LeafBucket(prefix.length());
final LeafBucket leaf = new LeafBucket(prefixLen);
final MutableObjectId idBuf = new MutableObjectId();
for (; !eof(); next(1)) {
@ -160,7 +160,7 @@ private boolean parseObjectId(MutableObjectId id) {
}
private FanoutBucket parseFanoutTree() {
final FanoutBucket fanout = new FanoutBucket(prefix.length());
final FanoutBucket fanout = new FanoutBucket(prefixLen);
for (; !eof(); next(1)) {
final int cell = parseFanoutCell();