]> source.dussan.org Git - aspectj.git/commitdiff
fix for pr117854 - first part, broken switch statement.
authoraclement <aclement>
Tue, 6 Dec 2005 11:28:20 +0000 (11:28 +0000)
committeraclement <aclement>
Tue, 6 Dec 2005 11:28:20 +0000 (11:28 +0000)
bcel-builder/src/org/aspectj/apache/bcel/generic/SWITCH.java
lib/bcel/bcel-src.zip
lib/bcel/bcel.jar

index fb030134d4a236bfef9a109dfa7589dde79ccba7..9253e796b0d442262b891ce4f281092ae17a1237 100644 (file)
@@ -59,7 +59,7 @@ package org.aspectj.apache.bcel.generic;
  * TABLESWITCH instruction, depending on whether the match values (int[]) can be
  * sorted with no gaps between the numbers.
  *
- * @version $Id: SWITCH.java,v 1.3 2005/08/25 11:35:49 aclement Exp $
+ * @version $Id: SWITCH.java,v 1.4 2005/12/06 11:28:24 aclement Exp $
  * @author  <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
  */
 public final class SWITCH implements CompoundInstruction {
@@ -170,10 +170,10 @@ public final class SWITCH implements CompoundInstruction {
    * @return match is sorted in ascending order with no gap bigger than max_gap?
    */
   private final boolean matchIsOrdered(int max_gap) {
-    for(int i=1; i < match_length; i++)
-      if(match[i] - match[i-1] > max_gap)
-       return false;
-
+    for(int i=1; i < match_length; i++) {
+      int diff = (match[i]-match[i-1]);
+      if(diff > max_gap || diff<0) return false;
+    }
     return true;
   }
 
index a38a34a377ef8f4e6a65b0ad2f761c1798dcf32e..8ae67e418b4a6fb1300bb22aca6f1b3fb37df5b8 100644 (file)
Binary files a/lib/bcel/bcel-src.zip and b/lib/bcel/bcel-src.zip differ
index acb3fba1dc6ba6c2a723f0d9c56d7c58d3a53136..dcf03d7b01a1a3e2c8a1536c6c6613ce5ff69f15 100644 (file)
Binary files a/lib/bcel/bcel.jar and b/lib/bcel/bcel.jar differ