aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Borowitz <dborowitz@google.com>2017-07-05 09:57:01 -0400
committerDave Borowitz <dborowitz@google.com>2017-07-05 15:51:26 -0400
commit28adcce8622814e6b0ecb33168eae1846829390d (patch)
treef697c5633aac4a38e405e47616f412e259840853
parent1968b2006617541f9f2b56a9e341bdd00987dcdf (diff)
downloadjgit-28adcce8622814e6b0ecb33168eae1846829390d.tar.gz
jgit-28adcce8622814e6b0ecb33168eae1846829390d.zip
BatchRefUpdate: Clarify some ref prefix calls
Inline the old addRefToPrefixes, since it was just a glorified addAll. Split getPrefixes into a variant, addPrefixesTo, that doesn't allocate a small Collection on every invocation. Use this in the tight loop of getTakenPrefixes. Change-Id: I25cc7feef0c8e312820d85b7ed48559da49b83d2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/BatchRefUpdate.java25
1 files changed, 11 insertions, 14 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/BatchRefUpdate.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/BatchRefUpdate.java
index 3f6995de83..3043d4fcda 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/BatchRefUpdate.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/BatchRefUpdate.java
@@ -462,7 +462,7 @@ public class BatchRefUpdate {
break SWITCH;
}
ru.setCheckConflicting(false);
- addRefToPrefixes(takenPrefixes, cmd.getRefName());
+ takenPrefixes.addAll(getPrefixes(cmd.getRefName()));
takenNames.add(cmd.getRefName());
cmd.setResult(ru.update(walk));
}
@@ -523,29 +523,26 @@ public class BatchRefUpdate {
execute(walk, monitor, null);
}
- private static Collection<String> getTakenPrefixes(
- final Collection<String> names) {
+ private static Collection<String> getTakenPrefixes(Collection<String> names) {
Collection<String> ref = new HashSet<>();
- for (String name : names)
- ref.addAll(getPrefixes(name));
- return ref;
- }
-
- private static void addRefToPrefixes(Collection<String> prefixes,
- String name) {
- for (String prefix : getPrefixes(name)) {
- prefixes.add(prefix);
+ for (String name : names) {
+ addPrefixesTo(name, ref);
}
+ return ref;
}
static Collection<String> getPrefixes(String s) {
Collection<String> ret = new HashSet<>();
+ addPrefixesTo(s, ret);
+ return ret;
+ }
+
+ static void addPrefixesTo(String s, Collection<String> out) {
int p1 = s.indexOf('/');
while (p1 > 0) {
- ret.add(s.substring(0, p1));
+ out.add(s.substring(0, p1));
p1 = s.indexOf('/', p1 + 1);
}
- return ret;
}
/**