]> source.dussan.org Git - jgit.git/commitdiff
BatchRefUpdate: Clarify some ref prefix calls 65/100765/1
authorDave Borowitz <dborowitz@google.com>
Wed, 5 Jul 2017 13:57:01 +0000 (09:57 -0400)
committerDave Borowitz <dborowitz@google.com>
Wed, 5 Jul 2017 19:51:26 +0000 (15:51 -0400)
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

org.eclipse.jgit/src/org/eclipse/jgit/lib/BatchRefUpdate.java

index 3f6995de8304322340aae05405e880b10f6406bd..3043d4fcda02bb4636d5cbbfc098cb9c2aa61ba5 100644 (file)
@@ -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;
        }
 
        /**