Fixing the method getGenericParameterTypes to recognize the GenericArrayTypeImpl...
[jpf-core.git] / src / main / gov / nasa / jpf / vm / Types.java
index c29cb1da08e4b9aef044a550418c850e4048db33..64aec5c886a94f994534b3f94812e3246e1bf165 100644 (file)
@@ -1113,7 +1113,8 @@ public class Types {
       int genericStart = currParam.indexOf('<');
       if (genericStart != -1) {
         if (currParam.charAt(genericStart + 1) == '*') {
-          semicolon = genericStart + 4;
+          // Need to offset with idx to anticipate for array types (idx is incremented for array types)
+          semicolon = genericStart + idx + 3;
         } else {
           int generic = signature.indexOf('>', semicolon);
           if (generic != -1) {
@@ -1245,6 +1246,14 @@ public class Types {
       return signature.substring(0, opening);
   }
 
+  public static String getArrayClassName(String signature) {
+    int opening = signature.indexOf('[');
+    if (opening == -1)
+      return signature;
+    else
+      return signature.substring(0, opening);
+  }
+
   public static String getOwnerClassName(String signature) {
     int marker = signature.indexOf('$');
     if (marker == -1)
@@ -1260,6 +1269,13 @@ public class Types {
     return (opening != -1);
   }
 
+  public static boolean isArraySignature(String signature) {
+    if (signature == null || signature.equals(""))
+      return false;
+    int opening = signature.indexOf('[');
+    return (opening != -1);
+  }
+
   public static boolean isTypeParameter(String parameterizedType, String signature) {
     if (signature == null || signature.equals(""))
       return false;