diff options
author | acolyer <acolyer> | 2005-08-24 19:20:56 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2005-08-24 19:20:56 +0000 |
commit | 803616d373f1c366e133f87342b88514cc5f74c3 (patch) | |
tree | 43b3947fd8c10b79781ffcaf88b6fbe387af1435 /bcel-builder/src | |
parent | cc6e6812fa6908d315e2f07195bca3914438cb1a (diff) | |
download | aspectj-803616d373f1c366e133f87342b88514cc5f74c3.tar.gz aspectj-803616d373f1c366e133f87342b88514cc5f74c3.zip |
fix for pr107784, failure to parse an array of a primitive type when used as a type variable
Diffstat (limited to 'bcel-builder/src')
-rw-r--r-- | bcel-builder/src/org/aspectj/apache/bcel/classfile/GenericSignatureParser.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/bcel-builder/src/org/aspectj/apache/bcel/classfile/GenericSignatureParser.java b/bcel-builder/src/org/aspectj/apache/bcel/classfile/GenericSignatureParser.java index 9c7ef4e81..fac5f506b 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/classfile/GenericSignatureParser.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/classfile/GenericSignatureParser.java @@ -306,6 +306,7 @@ public class GenericSignatureParser { List tokens = new ArrayList(); StringBuffer identifier = new StringBuffer(); boolean inParens = false; + boolean inArray = false; boolean couldSeePrimitive = false; do { switch (chars[index]) { @@ -335,6 +336,7 @@ public class GenericSignatureParser { identifier = new StringBuffer(); tokens.add(";"); couldSeePrimitive = true; + inArray = false; break; case '^': if (identifier.length() > 0) tokens.add(identifier.toString()); @@ -366,6 +368,8 @@ public class GenericSignatureParser { break; case '[' : tokens.add("["); + couldSeePrimitive = true; + inArray = true; break; case 'B' : case 'C' : @@ -376,11 +380,13 @@ public class GenericSignatureParser { case 'S' : case 'V' : case 'Z' : - if (inParens && couldSeePrimitive && identifier.length() == 0) { + if ((inParens || inArray) && couldSeePrimitive && identifier.length() == 0) { tokens.add(new String("" + chars[index])); } else { identifier.append(chars[index]); } + couldSeePrimitive = false; + inArray = false; break; default : identifier.append(chars[index]); |