Browse Source

Reduce compares in Edit.getType

We can slightly optimize this method by removing some compares
based on knowledge of how the orderings have to work.  This way
a getType() invocation requires at most 2 int compares for any
result, vs. the 6 required to find REPLACE before.

Change-Id: I62a04cc513a6d28c300d1c1496a8608d5df4efa6
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
stable-0.9
Shawn O. Pearce 14 years ago
parent
commit
6938f99ef3
  1. 19
      org.eclipse.jgit/src/org/eclipse/jgit/diff/Edit.java

19
org.eclipse.jgit/src/org/eclipse/jgit/diff/Edit.java

@ -121,13 +121,18 @@ public class Edit {
/** @return the type of this region */
public final Type getType() {
if (beginA == endA && beginB < endB)
return Type.INSERT;
if (beginA < endA && beginB == endB)
return Type.DELETE;
if (beginA == endA && beginB == endB)
return Type.EMPTY;
return Type.REPLACE;
if (beginA < endA) {
if (beginB < endB)
return Type.REPLACE;
else /* if (beginB == endB) */
return Type.DELETE;
} else /* if (beginA == endA) */{
if (beginB < endB)
return Type.INSERT;
else /* if (beginB == endB) */
return Type.EMPTY;
}
}
/** @return true if the edit is empty (lengths of both a and b is zero). */

Loading…
Cancel
Save