From 6938f99ef3338ec51b528800caf561dad30d9cec Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Thu, 2 Sep 2010 13:07:23 -0700 Subject: [PATCH] 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 --- .../src/org/eclipse/jgit/diff/Edit.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/diff/Edit.java b/org.eclipse.jgit/src/org/eclipse/jgit/diff/Edit.java index 4a5de57b0..f0c7cdac5 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/diff/Edit.java +++ b/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). */