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>
tags/v0.9.1
Shawn O. Pearce 13 years ago
parent
commit
6938f99ef3
1 changed files with 12 additions and 7 deletions
  1. 12
    7
      org.eclipse.jgit/src/org/eclipse/jgit/diff/Edit.java

+ 12
- 7
org.eclipse.jgit/src/org/eclipse/jgit/diff/Edit.java View File

@@ -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