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>
/** @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). */