summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/treewalk/AbstractTreeIterator.java6
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/treewalk/CanonicalTreeParser.java9
2 files changed, 6 insertions, 9 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/AbstractTreeIterator.java b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/AbstractTreeIterator.java
index 335abe1b5b..a3c93cf87a 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/AbstractTreeIterator.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/AbstractTreeIterator.java
@@ -239,12 +239,10 @@ public abstract class AbstractTreeIterator {
path = p.path;
pathOffset = p.pathLen + 1;
- try {
- path[pathOffset - 1] = '/';
- } catch (ArrayIndexOutOfBoundsException e) {
+ if (pathOffset > path.length) {
growPath(p.pathLen);
- path[pathOffset - 1] = '/';
}
+ path[pathOffset - 1] = '/';
}
/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/CanonicalTreeParser.java b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/CanonicalTreeParser.java
index 019968875d..b2d8fc3aa8 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/CanonicalTreeParser.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/CanonicalTreeParser.java
@@ -387,14 +387,13 @@ public class CanonicalTreeParser extends AbstractTreeIterator {
tmp = pathOffset;
for (;; tmp++) {
c = raw[ptr++];
- if (c == 0)
+ if (c == 0) {
break;
- try {
- path[tmp] = c;
- } catch (ArrayIndexOutOfBoundsException e) {
+ }
+ if (tmp >= path.length) {
growPath(tmp);
- path[tmp] = c;
}
+ path[tmp] = c;
}
pathLen = tmp;
nextPtr = ptr + OBJECT_ID_LENGTH;