You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2015/08/12 13:15:10 UTC
tapestry-5 git commit: update ASM to 5.0.4
Repository: tapestry-5
Updated Branches:
refs/heads/master a05f96186 -> 363f61756
update ASM to 5.0.4
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/363f6175
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/363f6175
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/363f6175
Branch: refs/heads/master
Commit: 363f6175602adc23ec0454433daa0a1ff9dd057a
Parents: a05f961
Author: Jochen Kemnade <jo...@eddyson.de>
Authored: Wed Aug 12 13:14:44 2015 +0200
Committer: Jochen Kemnade <jo...@eddyson.de>
Committed: Wed Aug 12 13:14:44 2015 +0200
----------------------------------------------------------------------
.../internal/plastic/asm/ClassReader.java | 32 ++++++++-----
.../internal/plastic/asm/ClassWriter.java | 2 +-
.../tapestry5/internal/plastic/asm/Frame.java | 18 +++++---
.../tapestry5/internal/plastic/asm/Item.java | 4 +-
.../tapestry5/internal/plastic/asm/Label.java | 11 +++--
.../internal/plastic/asm/MethodVisitor.java | 19 ++++----
.../internal/plastic/asm/MethodWriter.java | 40 ++++++++--------
.../tapestry5/internal/plastic/asm/Type.java | 6 +--
.../internal/plastic/asm/TypePath.java | 7 ++-
.../internal/plastic/asm/attrs/package.html | 48 --------------------
.../plastic/asm/commons/AdviceAdapter.java | 2 +-
.../plastic/asm/commons/GeneratorAdapter.java | 14 +++---
.../plastic/asm/commons/InstructionAdapter.java | 8 ++--
.../internal/plastic/asm/commons/Method.java | 4 +-
.../internal/plastic/asm/commons/Remapper.java | 12 ++---
.../asm/commons/SerialVersionUIDAdder.java | 3 +-
.../plastic/asm/commons/SimpleRemapper.java | 8 +++-
.../plastic/asm/optimizer/Constant.java | 8 ++--
.../plastic/asm/optimizer/ConstantPool.java | 2 +
.../plastic/asm/optimizer/MethodOptimizer.java | 42 +++++++++++++++++
.../plastic/asm/optimizer/Shrinker.java | 17 ++++---
.../plastic/asm/optimizer/shrink.properties | 1 +
.../plastic/asm/signature/SignatureVisitor.java | 2 +-
.../plastic/asm/tree/AbstractInsnNode.java | 4 +-
.../plastic/asm/tree/AnnotationNode.java | 24 +++++-----
.../internal/plastic/asm/tree/ClassNode.java | 16 +++----
.../internal/plastic/asm/tree/FieldNode.java | 10 ++--
.../internal/plastic/asm/tree/InsnList.java | 1 +
.../plastic/asm/tree/LookupSwitchInsnNode.java | 2 +-
.../plastic/asm/tree/MethodInsnNode.java | 1 +
.../internal/plastic/asm/tree/MethodNode.java | 26 ++++++-----
.../plastic/asm/tree/TryCatchBlockNode.java | 4 +-
.../plastic/asm/tree/analysis/Analyzer.java | 1 +
.../asm/tree/analysis/AnalyzerException.java | 1 +
.../plastic/asm/tree/analysis/Frame.java | 11 +++--
.../internal/plastic/asm/util/ASMifier.java | 3 +-
.../plastic/asm/util/CheckClassAdapter.java | 22 ++++-----
.../plastic/asm/util/CheckMethodAdapter.java | 2 +-
.../internal/plastic/asm/util/Textifier.java | 4 +-
.../plastic/asm/xml/ASMContentHandler.java | 11 ++++-
.../plastic/asm/xml/SAXAnnotationAdapter.java | 14 +++---
41 files changed, 256 insertions(+), 211 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/ClassReader.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/ClassReader.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/ClassReader.java
index 4b9c65e..c334984 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/ClassReader.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/ClassReader.java
@@ -1170,7 +1170,14 @@ public class ClassReader {
if (labels[label] == null) {
readLabel(label, labels).status |= Label.DEBUG;
}
- labels[label].line = readUnsignedShort(v + 12);
+ Label l = labels[label];
+ while (l.line > 0) {
+ if (l.next == null) {
+ l.next = new Label();
+ }
+ l = l.next;
+ }
+ l.line = readUnsignedShort(v + 12);
v += 4;
}
}
@@ -1285,9 +1292,15 @@ public class ClassReader {
// visits the label and line number for this offset, if any
Label l = labels[offset];
if (l != null) {
+ Label next = l.next;
+ l.next = null;
mv.visitLabel(l);
if ((context.flags & SKIP_DEBUG) == 0 && l.line > 0) {
mv.visitLineNumber(l.line, l);
+ while (next != null) {
+ mv.visitLineNumber(next.line, l);
+ next = next.next;
+ }
}
}
@@ -1828,8 +1841,7 @@ public class ClassReader {
v += 2;
break;
case 'B': // pointer to CONSTANT_Byte
- av.visit(name,
- new Byte((byte) readInt(items[readUnsignedShort(v)])));
+ av.visit(name, (byte) readInt(items[readUnsignedShort(v)]));
v += 2;
break;
case 'Z': // pointer to CONSTANT_Boolean
@@ -1839,13 +1851,11 @@ public class ClassReader {
v += 2;
break;
case 'S': // pointer to CONSTANT_Short
- av.visit(name, new Short(
- (short) readInt(items[readUnsignedShort(v)])));
+ av.visit(name, (short) readInt(items[readUnsignedShort(v)]));
v += 2;
break;
case 'C': // pointer to CONSTANT_Char
- av.visit(name, new Character(
- (char) readInt(items[readUnsignedShort(v)])));
+ av.visit(name, (char) readInt(items[readUnsignedShort(v)]));
v += 2;
break;
case 's': // pointer to CONSTANT_Utf8
@@ -2469,13 +2479,13 @@ public class ClassReader {
int index = items[item];
switch (b[index - 1]) {
case ClassWriter.INT:
- return new Integer(readInt(index));
+ return readInt(index);
case ClassWriter.FLOAT:
- return new Float(Float.intBitsToFloat(readInt(index)));
+ return Float.intBitsToFloat(readInt(index));
case ClassWriter.LONG:
- return new Long(readLong(index));
+ return readLong(index);
case ClassWriter.DOUBLE:
- return new Double(Double.longBitsToDouble(readLong(index)));
+ return Double.longBitsToDouble(readLong(index));
case ClassWriter.CLASS:
return Type.getObjectType(readUTF8(index, buf));
case ClassWriter.STR:
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/ClassWriter.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/ClassWriter.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/ClassWriter.java
index 6cd89a5..da87f36 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/ClassWriter.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/ClassWriter.java
@@ -756,7 +756,7 @@ public class ClassWriter extends ClassVisitor {
if (innerClasses == null) {
innerClasses = new ByteVector();
}
- // �4.7.6 of the JVMS states "Every CONSTANT_Class_info entry in the
+ // Sec. 4.7.6 of the JVMS states "Every CONSTANT_Class_info entry in the
// constant_pool table which represents a class or interface C that is
// not a package member must have exactly one corresponding entry in the
// classes array". To avoid duplicates we keep track in the intVal field
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Frame.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Frame.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Frame.java
index 5aa3aff..e0aa35c 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Frame.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Frame.java
@@ -1426,16 +1426,20 @@ final class Frame {
| cw.getMergedType(t & BASE_VALUE, u & BASE_VALUE);
} else {
// if u and t are array types, but not with the same element
- // type, merge(u,t)=java/lang/Object
- v = OBJECT | cw.addType("java/lang/Object");
+ // type, merge(u,t) = dim(u) - 1 | java/lang/Object
+ int vdim = ELEMENT_OF + (u & DIM);
+ v = vdim | OBJECT | cw.addType("java/lang/Object");
}
} else if ((t & BASE_KIND) == OBJECT || (t & DIM) != 0) {
// if t is any other reference or array type, the merged type
- // is Object, or min(dim(u), dim(t)) | java/lang/Object is u
- // and t have different array dimensions
- int tdim = t & DIM;
- int udim = u & DIM;
- v = (udim != tdim ? Math.min(tdim, udim) : 0) | OBJECT
+ // is min(udim, tdim) | java/lang/Object, where udim is the
+ // array dimension of u, minus 1 if u is an array type with a
+ // primitive element type (and similarly for tdim).
+ int tdim = (((t & DIM) == 0 || (t & BASE_KIND) == OBJECT) ? 0
+ : ELEMENT_OF) + (t & DIM);
+ int udim = (((u & DIM) == 0 || (u & BASE_KIND) == OBJECT) ? 0
+ : ELEMENT_OF) + (u & DIM);
+ v = Math.min(tdim, udim) | OBJECT
| cw.addType("java/lang/Object");
} else {
// if t is any other type, merge(u,t)=TOP
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Item.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Item.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Item.java
index fa4f454..037a45a 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Item.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Item.java
@@ -201,6 +201,7 @@ final class Item {
* @param strVal3
* third part of the value of this item.
*/
+ @SuppressWarnings("fallthrough")
void set(final int type, final String strVal1, final String strVal2,
final String strVal3) {
this.type = type;
@@ -208,9 +209,10 @@ final class Item {
this.strVal2 = strVal2;
this.strVal3 = strVal3;
switch (type) {
+ case ClassWriter.CLASS:
+ this.intVal = 0; // intVal of a class must be zero, see visitInnerClass
case ClassWriter.UTF8:
case ClassWriter.STR:
- case ClassWriter.CLASS:
case ClassWriter.MTYPE:
case ClassWriter.TYPE_NORMAL:
hashCode = 0x7FFFFFFF & (type + strVal1.hashCode());
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Label.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Label.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Label.java
index c0bbe7e..c135dac 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Label.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Label.java
@@ -131,7 +131,11 @@ public class Label {
int status;
/**
- * The line number corresponding to this label, if known.
+ * The line number corresponding to this label, if known. If there are
+ * several lines, each line is stored in a separate label, all linked via
+ * their next field (these links are created in ClassReader and removed just
+ * before visitLabel is called, so that this does not impact the rest of the
+ * code).
*/
int line;
@@ -239,7 +243,8 @@ public class Label {
* The next basic block in the basic block stack. This stack is used in the
* main loop of the fix point algorithm used in the second step of the
* control flow analysis algorithms. It is also used in
- * {@link #visitSubroutine} to avoid using a recursive method.
+ * {@link #visitSubroutine} to avoid using a recursive method, and in
+ * ClassReader to temporarily store multiple source lines for a label.
*
* @see MethodWriter#visitMaxs
*/
@@ -473,7 +478,7 @@ public class Label {
void addToSubroutine(final long id, final int nbSubroutines) {
if ((status & VISITED) == 0) {
status |= VISITED;
- srcAndRefPositions = new int[(nbSubroutines - 1) / 32 + 1];
+ srcAndRefPositions = new int[nbSubroutines / 32 + 1];
}
srcAndRefPositions[(int) (id >>> 32)] |= (int) id;
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/MethodVisitor.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/MethodVisitor.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/MethodVisitor.java
index 4585e67..6de577a 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/MethodVisitor.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/MethodVisitor.java
@@ -33,15 +33,16 @@ package org.apache.tapestry5.internal.plastic.asm;
* A visitor to visit a Java method. The methods of this class must be called in
* the following order: ( <tt>visitParameter</tt> )* [
* <tt>visitAnnotationDefault</tt> ] ( <tt>visitAnnotation</tt> |
- * <tt>visitTypeAnnotation</tt> | <tt>visitAttribute</tt> )* [
- * <tt>visitCode</tt> ( <tt>visitFrame</tt> | <tt>visit<i>X</i>Insn</tt> |
- * <tt>visitLabel</tt> | <tt>visitInsnAnnotation</tt> |
- * <tt>visitTryCatchBlock</tt> | <tt>visitTryCatchBlockAnnotation</tt> |
- * <tt>visitLocalVariable</tt> | <tt>visitLocalVariableAnnotation</tt> |
- * <tt>visitLineNumber</tt> )* <tt>visitMaxs</tt> ] <tt>visitEnd</tt>. In
- * addition, the <tt>visit<i>X</i>Insn</tt> and <tt>visitLabel</tt> methods must
- * be called in the sequential order of the bytecode instructions of the visited
- * code, <tt>visitInsnAnnotation</tt> must be called <i>after</i> the annotated
+ * <tt>visitParameterAnnotation</tt> <tt>visitTypeAnnotation</tt> |
+ * <tt>visitAttribute</tt> )* [ <tt>visitCode</tt> ( <tt>visitFrame</tt> |
+ * <tt>visit<i>X</i>Insn</tt> | <tt>visitLabel</tt> |
+ * <tt>visitInsnAnnotation</tt> | <tt>visitTryCatchBlock</tt> |
+ * <tt>visitTryCatchAnnotation</tt> | <tt>visitLocalVariable</tt> |
+ * <tt>visitLocalVariableAnnotation</tt> | <tt>visitLineNumber</tt> )*
+ * <tt>visitMaxs</tt> ] <tt>visitEnd</tt>. In addition, the
+ * <tt>visit<i>X</i>Insn</tt> and <tt>visitLabel</tt> methods must be called in
+ * the sequential order of the bytecode instructions of the visited code,
+ * <tt>visitInsnAnnotation</tt> must be called <i>after</i> the annotated
* instruction, <tt>visitTryCatchBlock</tt> must be called <i>before</i> the
* labels passed as arguments have been visited,
* <tt>visitTryCatchBlockAnnotation</tt> must be called <i>after</i> the
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/MethodWriter.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/MethodWriter.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/MethodWriter.java
index 7b9a62a..ef572b9 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/MethodWriter.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/MethodWriter.java
@@ -1966,43 +1966,43 @@ class MethodWriter extends MethodVisitor {
stackMap.putByte(v);
}
} else {
- StringBuffer buf = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
d >>= 28;
while (d-- > 0) {
- buf.append('[');
+ sb.append('[');
}
if ((t & Frame.BASE_KIND) == Frame.OBJECT) {
- buf.append('L');
- buf.append(cw.typeTable[t & Frame.BASE_VALUE].strVal1);
- buf.append(';');
+ sb.append('L');
+ sb.append(cw.typeTable[t & Frame.BASE_VALUE].strVal1);
+ sb.append(';');
} else {
switch (t & 0xF) {
case 1:
- buf.append('I');
+ sb.append('I');
break;
case 2:
- buf.append('F');
+ sb.append('F');
break;
case 3:
- buf.append('D');
+ sb.append('D');
break;
case 9:
- buf.append('Z');
+ sb.append('Z');
break;
case 10:
- buf.append('B');
+ sb.append('B');
break;
case 11:
- buf.append('C');
+ sb.append('C');
break;
case 12:
- buf.append('S');
+ sb.append('S');
break;
default:
- buf.append('J');
+ sb.append('J');
}
}
- stackMap.putByte(7).putShort(cw.newClass(buf.toString()));
+ stackMap.putByte(7).putShort(cw.newClass(sb.toString()));
}
}
}
@@ -2706,11 +2706,13 @@ class MethodWriter extends MethodVisitor {
l = l.successor;
}
// Update the offsets in the uninitialized types
- for (i = 0; i < cw.typeTable.length; ++i) {
- Item item = cw.typeTable[i];
- if (item != null && item.type == ClassWriter.TYPE_UNINIT) {
- item.intVal = getNewOffset(allIndexes, allSizes, 0,
- item.intVal);
+ if (cw.typeTable != null) {
+ for (i = 0; i < cw.typeTable.length; ++i) {
+ Item item = cw.typeTable[i];
+ if (item != null && item.type == ClassWriter.TYPE_UNINIT) {
+ item.intVal = getNewOffset(allIndexes, allSizes, 0,
+ item.intVal);
+ }
}
}
// The stack map frames are not serialized yet, so we don't need
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Type.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Type.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Type.java
index 0b526a0..1d6c204 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Type.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/Type.java
@@ -556,11 +556,11 @@ public class Type {
case DOUBLE:
return "double";
case ARRAY:
- StringBuffer b = new StringBuffer(getElementType().getClassName());
+ StringBuilder sb = new StringBuilder(getElementType().getClassName());
for (int i = getDimensions(); i > 0; --i) {
- b.append("[]");
+ sb.append("[]");
}
- return b.toString();
+ return sb.toString();
case OBJECT:
return new String(buf, off, len).replace('/', '.');
default:
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/TypePath.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/TypePath.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/TypePath.java
index b772d59..d86420d 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/TypePath.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/TypePath.java
@@ -152,6 +152,9 @@ public class TypePath {
typeArg = typeArg * 10 + c - '0';
i += 1;
}
+ if (i < n && typePath.charAt(i) == ';') {
+ i += 1;
+ }
out.put11(TYPE_ARGUMENT, typeArg);
}
}
@@ -164,7 +167,7 @@ public class TypePath {
* ARRAY_ELEMENT} steps are represented with '[', {@link #INNER_TYPE
* INNER_TYPE} steps with '.', {@link #WILDCARD_BOUND WILDCARD_BOUND} steps
* with '*' and {@link #TYPE_ARGUMENT TYPE_ARGUMENT} steps with their type
- * argument index in decimal form.
+ * argument index in decimal form followed by ';'.
*/
@Override
public String toString() {
@@ -182,7 +185,7 @@ public class TypePath {
result.append('*');
break;
case TYPE_ARGUMENT:
- result.append(getStepArgument(i));
+ result.append(getStepArgument(i)).append(';');
break;
default:
result.append('_');
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/attrs/package.html
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/attrs/package.html b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/attrs/package.html
deleted file mode 100644
index 28d827d..0000000
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/attrs/package.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<html>
-<!--
- * ASM: a very small and fast Java bytecode manipulation framework
- * Copyright (c) 2000-2011 INRIA, France Telecom
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
--->
-<body>
-Provides an implementation for optional class, field and method attributes.
-
-<p>
-
-By default ASM strips optional attributes, in order to keep them in
-the bytecode that is being readed you should pass an array of required attribute
-instances to {@link org.objectweb.asm.ClassReader#accept(org.objectweb.asm.ClassVisitor, org.objectweb.asm.Attribute[], boolean) ClassReader.accept()} method.
-In order to add custom attributes to the manually constructed bytecode concrete
-subclasses of the {@link org.objectweb.asm.Attribute Attribute} can be passed to
-the visitAttribute methods of the
-{@link org.objectweb.asm.ClassVisitor ClassVisitor},
-{@link org.objectweb.asm.FieldVisitor FieldVisitor} and
-{@link org.objectweb.asm.MethodVisitor MethodVisitor} interfaces.
-
-@since ASM 1.4.1
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/AdviceAdapter.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/AdviceAdapter.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/AdviceAdapter.java
index 8fa6bbd..55722bb 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/AdviceAdapter.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/AdviceAdapter.java
@@ -586,7 +586,7 @@ public abstract class AdviceAdapter extends GeneratorAdapter implements Opcodes
}
/**
- * Called at the beginning of the method or after super class class call in
+ * Called at the beginning of the method or after super class call in
* the constructor. <br>
* <br>
*
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/GeneratorAdapter.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/GeneratorAdapter.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/GeneratorAdapter.java
index ceb051f..cc16185 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/GeneratorAdapter.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/GeneratorAdapter.java
@@ -379,7 +379,7 @@ public class GeneratorAdapter extends LocalVariablesSorter {
} else if (value >= Short.MIN_VALUE && value <= Short.MAX_VALUE) {
mv.visitIntInsn(Opcodes.SIPUSH, value);
} else {
- mv.visitLdcInsn(new Integer(value));
+ mv.visitLdcInsn(value);
}
}
@@ -393,7 +393,7 @@ public class GeneratorAdapter extends LocalVariablesSorter {
if (value == 0L || value == 1L) {
mv.visitInsn(Opcodes.LCONST_0 + (int) value);
} else {
- mv.visitLdcInsn(new Long(value));
+ mv.visitLdcInsn(value);
}
}
@@ -408,7 +408,7 @@ public class GeneratorAdapter extends LocalVariablesSorter {
if (bits == 0L || bits == 0x3f800000 || bits == 0x40000000) { // 0..2
mv.visitInsn(Opcodes.FCONST_0 + (int) value);
} else {
- mv.visitLdcInsn(new Float(value));
+ mv.visitLdcInsn(value);
}
}
@@ -423,7 +423,7 @@ public class GeneratorAdapter extends LocalVariablesSorter {
if (bits == 0L || bits == 0x3ff0000000000000L) { // +0.0d and 1.0d
mv.visitInsn(Opcodes.DCONST_0 + (int) value);
} else {
- mv.visitLdcInsn(new Double(value));
+ mv.visitLdcInsn(value);
}
}
@@ -1618,11 +1618,13 @@ public class GeneratorAdapter extends LocalVariablesSorter {
*/
public void catchException(final Label start, final Label end,
final Type exception) {
+ Label doCatch = new Label();
if (exception == null) {
- mv.visitTryCatchBlock(start, end, mark(), null);
+ mv.visitTryCatchBlock(start, end, doCatch, null);
} else {
- mv.visitTryCatchBlock(start, end, mark(),
+ mv.visitTryCatchBlock(start, end, doCatch,
exception.getInternalName());
}
+ mark(doCatch);
}
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/InstructionAdapter.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/InstructionAdapter.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/InstructionAdapter.java
index fe8400a..f544323 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/InstructionAdapter.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/InstructionAdapter.java
@@ -708,7 +708,7 @@ public class InstructionAdapter extends MethodVisitor {
} else if (cst >= Short.MIN_VALUE && cst <= Short.MAX_VALUE) {
mv.visitIntInsn(Opcodes.SIPUSH, cst);
} else {
- mv.visitLdcInsn(new Integer(cst));
+ mv.visitLdcInsn(cst);
}
}
@@ -716,7 +716,7 @@ public class InstructionAdapter extends MethodVisitor {
if (cst == 0L || cst == 1L) {
mv.visitInsn(Opcodes.LCONST_0 + (int) cst);
} else {
- mv.visitLdcInsn(new Long(cst));
+ mv.visitLdcInsn(cst);
}
}
@@ -725,7 +725,7 @@ public class InstructionAdapter extends MethodVisitor {
if (bits == 0L || bits == 0x3f800000 || bits == 0x40000000) { // 0..2
mv.visitInsn(Opcodes.FCONST_0 + (int) cst);
} else {
- mv.visitLdcInsn(new Float(cst));
+ mv.visitLdcInsn(cst);
}
}
@@ -734,7 +734,7 @@ public class InstructionAdapter extends MethodVisitor {
if (bits == 0L || bits == 0x3ff0000000000000L) { // +0.0d and 1.0d
mv.visitInsn(Opcodes.DCONST_0 + (int) cst);
} else {
- mv.visitLdcInsn(new Double(cst));
+ mv.visitLdcInsn(cst);
}
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/Method.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/Method.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/Method.java
index 73c3e96..f6f5857 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/Method.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/Method.java
@@ -176,7 +176,7 @@ public class Method {
}
String returnType = method.substring(0, space);
String methodName = method.substring(space + 1, start - 1).trim();
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
sb.append('(');
int p;
do {
@@ -200,7 +200,7 @@ public class Method {
return type;
}
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
int index = 0;
while ((index = type.indexOf("[]", index) + 1) > 0) {
sb.append('[');
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/Remapper.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/Remapper.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/Remapper.java
index bffd20e..22ae929 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/Remapper.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/Remapper.java
@@ -118,17 +118,17 @@ public abstract class Remapper {
}
Type[] args = Type.getArgumentTypes(desc);
- StringBuffer s = new StringBuffer("(");
+ StringBuilder sb = new StringBuilder("(");
for (int i = 0; i < args.length; i++) {
- s.append(mapDesc(args[i].getDescriptor()));
+ sb.append(mapDesc(args[i].getDescriptor()));
}
Type returnType = Type.getReturnType(desc);
if (returnType == Type.VOID_TYPE) {
- s.append(")V");
- return s.toString();
+ sb.append(")V");
+ return sb.toString();
}
- s.append(')').append(mapDesc(returnType.getDescriptor()));
- return s.toString();
+ sb.append(')').append(mapDesc(returnType.getDescriptor()));
+ return sb.toString();
}
public Object mapValue(Object value) {
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/SerialVersionUIDAdder.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/SerialVersionUIDAdder.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/SerialVersionUIDAdder.java
index 04dcc9b..b8030df 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/SerialVersionUIDAdder.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/SerialVersionUIDAdder.java
@@ -337,8 +337,7 @@ public class SerialVersionUIDAdder extends ClassVisitor {
protected void addSVUID(long svuid) {
FieldVisitor fv = super.visitField(Opcodes.ACC_FINAL
- + Opcodes.ACC_STATIC, "serialVersionUID", "J", null, new Long(
- svuid));
+ + Opcodes.ACC_STATIC, "serialVersionUID", "J", null, svuid);
if (fv != null) {
fv.visitEnd();
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/SimpleRemapper.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/SimpleRemapper.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/SimpleRemapper.java
index 25b594d..68c7825 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/SimpleRemapper.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/commons/SimpleRemapper.java
@@ -35,7 +35,7 @@ import java.util.Map;
/**
* A {@link Remapper} using a {@link Map} to define its mapping.
- *
+ *
* @author Eugene Kuleshov
*/
public class SimpleRemapper extends Remapper {
@@ -57,6 +57,12 @@ public class SimpleRemapper extends Remapper {
}
@Override
+ public String mapInvokeDynamicMethodName(String name, String desc) {
+ String s = map('.' + name + desc);
+ return s == null ? name : s;
+ }
+
+ @Override
public String mapFieldName(String owner, String name, String desc) {
String s = map(owner + '.' + name);
return s == null ? name : s;
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/Constant.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/Constant.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/Constant.java
index 9c1f306..d1f1e1b 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/Constant.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/Constant.java
@@ -234,16 +234,16 @@ class Constant {
void write(final ClassWriter cw) {
switch (type) {
case 'I':
- cw.newConst(new Integer(intVal));
+ cw.newConst(intVal);
break;
case 'J':
- cw.newConst(new Long(longVal));
+ cw.newConst(longVal);
break;
case 'F':
- cw.newConst(new Float(floatVal));
+ cw.newConst(floatVal);
break;
case 'D':
- cw.newConst(new Double(doubleVal));
+ cw.newConst(doubleVal);
break;
case 'S':
cw.newConst(strVal1);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/ConstantPool.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/ConstantPool.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/ConstantPool.java
index 1901387..11df6bb 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/ConstantPool.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/ConstantPool.java
@@ -42,6 +42,8 @@ import org.apache.tapestry5.internal.plastic.asm.Type;
*/
public class ConstantPool extends HashMap<Constant, Constant> {
+ private static final long serialVersionUID = 1L;
+
private final Constant key1 = new Constant();
private final Constant key2 = new Constant();
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/MethodOptimizer.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/MethodOptimizer.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/MethodOptimizer.java
index adad6b4..1e11e8f 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/MethodOptimizer.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/MethodOptimizer.java
@@ -29,6 +29,8 @@
*/
package org.apache.tapestry5.internal.plastic.asm.optimizer;
+import java.util.HashMap;
+
import org.apache.tapestry5.internal.plastic.asm.AnnotationVisitor;
import org.apache.tapestry5.internal.plastic.asm.Attribute;
import org.apache.tapestry5.internal.plastic.asm.FieldVisitor;
@@ -133,4 +135,44 @@ public class MethodOptimizer extends RemappingMethodAdapter implements Opcodes {
String clsName = classOptimizer.clsName;
mv.visitFieldInsn(GETSTATIC, clsName, fieldName, "Ljava/lang/Class;");
}
+
+ @Override
+ public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) {
+ // rewrite boxing method call to use constructor to keep 1.3/1.4 compatibility
+ String[] constructorParams;
+ if (opcode == INVOKESTATIC && name.equals("valueOf") &&
+ (constructorParams = BOXING_MAP.get(owner + desc)) != null) {
+ String type = constructorParams[0];
+ String initDesc = constructorParams[1];
+ super.visitTypeInsn(NEW, type);
+ super.visitInsn(DUP);
+ super.visitInsn((initDesc == "(J)V" || initDesc == "(D)V")? DUP2_X2: DUP2_X1);
+ super.visitInsn(POP2);
+ super.visitMethodInsn(INVOKESPECIAL, type, "<init>", initDesc, false);
+ return;
+ }
+ super.visitMethodInsn(opcode, owner, name, desc, itf);
+ }
+
+ private static final HashMap<String, String[]> BOXING_MAP;
+ static {
+ String[][] boxingNames = {
+ // Boolean.valueOf is 1.4 and is used by the xml package, so no rewrite
+ { "java/lang/Byte", "(B)V" },
+ { "java/lang/Short", "(S)V" },
+ { "java/lang/Character", "(C)V" },
+ { "java/lang/Integer", "(I)V" },
+ { "java/lang/Long", "(J)V" },
+ { "java/lang/Float", "(F)V" },
+ { "java/lang/Double", "(D)V" },
+ };
+ HashMap<String, String[]> map = new HashMap<String, String[]>();
+ for(String[] boxingName: boxingNames) {
+ String wrapper = boxingName[0];
+ String desc = boxingName[1];
+ String boxingMethod = wrapper + '(' + desc.charAt(1) + ")L" + wrapper + ';';
+ map.put(boxingMethod, boxingName);
+ }
+ BOXING_MAP = map;
+ }
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/Shrinker.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/Shrinker.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/Shrinker.java
index e20cf5c..39b1d41 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/Shrinker.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/Shrinker.java
@@ -106,7 +106,8 @@ public class Shrinker {
} else if (f.getName().endsWith(".class")) {
ConstantPool cp = new ConstantPool();
ClassReader cr = new ClassReader(new FileInputStream(f));
- ClassWriter cw = new ClassWriter(0);
+ // auto-boxing removal requires to recompute the maxs
+ ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
ClassConstantsCollector ccc = new ClassConstantsCollector(cw, cp);
ClassOptimizer co = new ClassOptimizer(ccc, remapper);
cr.accept(co, ClassReader.SKIP_DEBUG);
@@ -151,16 +152,13 @@ public class Shrinker {
if (d == 0) {
switch (c1.type) {
case 'I':
- return new Integer(c1.intVal).compareTo(new Integer(
- c2.intVal));
+ return ((Integer)c1.intVal).compareTo(c2.intVal);
case 'J':
- return new Long(c1.longVal).compareTo(new Long(c2.longVal));
+ return ((Long)c1.longVal).compareTo(c2.longVal);
case 'F':
- return new Float(c1.floatVal).compareTo(new Float(
- c2.floatVal));
+ return ((Float)c1.floatVal).compareTo(c2.floatVal);
case 'D':
- return new Double(c1.doubleVal).compareTo(new Double(
- c2.doubleVal));
+ return ((Double)c1.doubleVal).compareTo(c2.doubleVal);
case 's':
case 'S':
case 'C':
@@ -219,6 +217,7 @@ public class Shrinker {
return mtype1.getDescriptor().compareTo(mtype2.getDescriptor());
}
+ @SuppressWarnings("unchecked")
private static int compareObjects(Object[] objVals1, Object[] objVals2) {
int length = objVals1.length;
int d = length - objVals2.length;
@@ -235,7 +234,7 @@ public class Shrinker {
d = compareHandle((Handle) objVal1,
(Handle) objVal2);
} else {
- d = ((Comparable) objVal1).compareTo(objVal2);
+ d = ((Comparable<Object>) objVal1).compareTo(objVal2);
}
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/shrink.properties
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/shrink.properties b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/shrink.properties
index 6b2a41f..4b5e3b2 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/shrink.properties
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/optimizer/shrink.properties
@@ -270,6 +270,7 @@ org/objectweb/asm/Attribute.put(Lorg/objectweb/asm/ClassWriter;[BIIILorg/objectw
org/objectweb/asm/ByteVector.enlarge(I)V=a
org/objectweb/asm/ByteVector.put11(II)Lorg/objectweb/asm/ByteVector;=a
org/objectweb/asm/ByteVector.put12(II)Lorg/objectweb/asm/ByteVector;=b
+org/objectweb/asm/ByteVector.encodeUTF8(Ljava/lang/String;II)Lorg/objectweb/asm/ByteVector;=c
org/objectweb/asm/ClassReader.copyPool(Lorg/objectweb/asm/ClassWriter;)V=a
org/objectweb/asm/ClassReader.copyBootstrapMethods(Lorg/objectweb/asm/ClassWriter;[Lorg/objectweb/asm/Item;[C)V=a
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/signature/SignatureVisitor.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/signature/SignatureVisitor.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/signature/SignatureVisitor.java
index 941980f..04446b5 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/signature/SignatureVisitor.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/signature/SignatureVisitor.java
@@ -39,7 +39,7 @@ import org.apache.tapestry5.internal.plastic.asm.Opcodes;
* <ul>
* <li><i>ClassSignature</i> = ( <tt>visitFormalTypeParameter</tt>
* <tt>visitClassBound</tt>? <tt>visitInterfaceBound</tt>* )* (
- * <tt>visitSuperClass</tt> <tt>visitInterface</tt>* )</li>
+ * <tt>visitSuperclass</tt> <tt>visitInterface</tt>* )</li>
* <li><i>MethodSignature</i> = ( <tt>visitFormalTypeParameter</tt>
* <tt>visitClassBound</tt>? <tt>visitInterfaceBound</tt>* )* (
* <tt>visitParameterType</tt>* <tt>visitReturnType</tt>
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/AbstractInsnNode.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/AbstractInsnNode.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/AbstractInsnNode.java
index a6a01d6..b68c9b5 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/AbstractInsnNode.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/AbstractInsnNode.java
@@ -134,7 +134,7 @@ public abstract class AbstractInsnNode {
* number nodes). This list is a list of {@link TypeAnnotationNode} objects.
* May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.TypeAnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.TypeAnnotationNode
* @label visible
*/
public List<TypeAnnotationNode> visibleTypeAnnotations;
@@ -145,7 +145,7 @@ public abstract class AbstractInsnNode {
* number nodes). This list is a list of {@link TypeAnnotationNode} objects.
* May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.TypeAnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.TypeAnnotationNode
* @label invisible
*/
public List<TypeAnnotationNode> invisibleTypeAnnotations;
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/AnnotationNode.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/AnnotationNode.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/AnnotationNode.java
index f78c810..3fb7344 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/AnnotationNode.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/AnnotationNode.java
@@ -37,7 +37,7 @@ import org.apache.tapestry5.internal.plastic.asm.Opcodes;
/**
* A node that represents an annotationn.
- *
+ *
* @author Eric Bruneton
*/
public class AnnotationNode extends AnnotationVisitor {
@@ -64,7 +64,7 @@ public class AnnotationNode extends AnnotationVisitor {
* Constructs a new {@link AnnotationNode}. <i>Subclasses must not use this
* constructor</i>. Instead, they must use the
* {@link #AnnotationNode(int, String)} version.
- *
+ *
* @param desc
* the class descriptor of the annotation class.
* @throws IllegalStateException
@@ -79,7 +79,7 @@ public class AnnotationNode extends AnnotationVisitor {
/**
* Constructs a new {@link AnnotationNode}.
- *
+ *
* @param api
* the ASM API version implemented by this visitor. Must be one
* of {@link Opcodes#ASM4} or {@link Opcodes#ASM5}.
@@ -93,7 +93,7 @@ public class AnnotationNode extends AnnotationVisitor {
/**
* Constructs a new {@link AnnotationNode} to visit an array value.
- *
+ *
* @param values
* where the visited values must be stored.
*/
@@ -169,7 +169,7 @@ public class AnnotationNode extends AnnotationVisitor {
* version. This methods checks that this node, and all its nodes
* recursively, do not contain elements that were introduced in more recent
* versions of the ASM API than the given version.
- *
+ *
* @param api
* an ASM API version. Must be one of {@link Opcodes#ASM4} or
* {@link Opcodes#ASM5}.
@@ -180,7 +180,7 @@ public class AnnotationNode extends AnnotationVisitor {
/**
* Makes the given visitor visit this annotation.
- *
+ *
* @param av
* an annotation visitor. Maybe <tt>null</tt>.
*/
@@ -199,7 +199,7 @@ public class AnnotationNode extends AnnotationVisitor {
/**
* Makes the given visitor visit a given annotation value.
- *
+ *
* @param av
* an annotation visitor. Maybe <tt>null</tt>.
* @param name
@@ -218,11 +218,13 @@ public class AnnotationNode extends AnnotationVisitor {
an.accept(av.visitAnnotation(name, an.desc));
} else if (value instanceof List) {
AnnotationVisitor v = av.visitArray(name);
- List<?> array = (List<?>) value;
- for (int j = 0; j < array.size(); ++j) {
- accept(v, null, array.get(j));
+ if (v != null) {
+ List<?> array = (List<?>) value;
+ for (int j = 0; j < array.size(); ++j) {
+ accept(v, null, array.get(j));
+ }
+ v.visitEnd();
}
- v.visitEnd();
} else {
av.visit(name, value);
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/ClassNode.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/ClassNode.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/ClassNode.java
index 94075d6..bf52334 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/ClassNode.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/ClassNode.java
@@ -119,7 +119,7 @@ public class ClassNode extends ClassVisitor {
* The runtime visible annotations of this class. This list is a list of
* {@link AnnotationNode} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.AnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode
* @label visible
*/
public List<AnnotationNode> visibleAnnotations;
@@ -128,7 +128,7 @@ public class ClassNode extends ClassVisitor {
* The runtime invisible annotations of this class. This list is a list of
* {@link AnnotationNode} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.AnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode
* @label invisible
*/
public List<AnnotationNode> invisibleAnnotations;
@@ -137,7 +137,7 @@ public class ClassNode extends ClassVisitor {
* The runtime visible type annotations of this class. This list is a list
* of {@link TypeAnnotationNode} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.TypeAnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.TypeAnnotationNode
* @label visible
*/
public List<TypeAnnotationNode> visibleTypeAnnotations;
@@ -146,7 +146,7 @@ public class ClassNode extends ClassVisitor {
* The runtime invisible type annotations of this class. This list is a list
* of {@link TypeAnnotationNode} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.TypeAnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.TypeAnnotationNode
* @label invisible
*/
public List<TypeAnnotationNode> invisibleTypeAnnotations;
@@ -155,7 +155,7 @@ public class ClassNode extends ClassVisitor {
* The non standard attributes of this class. This list is a list of
* {@link Attribute} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.Attribute
+ * @associates org.apache.tapestry5.internal.plastic.asm.Attribute
*/
public List<Attribute> attrs;
@@ -163,7 +163,7 @@ public class ClassNode extends ClassVisitor {
* Informations about the inner classes of this class. This list is a list
* of {@link InnerClassNode} objects.
*
- * @associates org.objectweb.asm.tree.InnerClassNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.InnerClassNode
*/
public List<InnerClassNode> innerClasses;
@@ -171,7 +171,7 @@ public class ClassNode extends ClassVisitor {
* The fields of this class. This list is a list of {@link FieldNode}
* objects.
*
- * @associates org.objectweb.asm.tree.FieldNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.FieldNode
*/
public List<FieldNode> fields;
@@ -179,7 +179,7 @@ public class ClassNode extends ClassVisitor {
* The methods of this class. This list is a list of {@link MethodNode}
* objects.
*
- * @associates org.objectweb.asm.tree.MethodNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.MethodNode
*/
public List<MethodNode> methods;
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/FieldNode.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/FieldNode.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/FieldNode.java
index d6c9c90..35f3766 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/FieldNode.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/FieldNode.java
@@ -78,7 +78,7 @@ public class FieldNode extends FieldVisitor {
* The runtime visible annotations of this field. This list is a list of
* {@link AnnotationNode} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.AnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode
* @label visible
*/
public List<AnnotationNode> visibleAnnotations;
@@ -87,7 +87,7 @@ public class FieldNode extends FieldVisitor {
* The runtime invisible annotations of this field. This list is a list of
* {@link AnnotationNode} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.AnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode
* @label invisible
*/
public List<AnnotationNode> invisibleAnnotations;
@@ -96,7 +96,7 @@ public class FieldNode extends FieldVisitor {
* The runtime visible type annotations of this field. This list is a list
* of {@link TypeAnnotationNode} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.TypeAnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.TypeAnnotationNode
* @label visible
*/
public List<TypeAnnotationNode> visibleTypeAnnotations;
@@ -105,7 +105,7 @@ public class FieldNode extends FieldVisitor {
* The runtime invisible type annotations of this field. This list is a list
* of {@link TypeAnnotationNode} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.TypeAnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.TypeAnnotationNode
* @label invisible
*/
public List<TypeAnnotationNode> invisibleTypeAnnotations;
@@ -114,7 +114,7 @@ public class FieldNode extends FieldVisitor {
* The non standard attributes of this field. This list is a list of
* {@link Attribute} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.Attribute
+ * @associates org.apache.tapestry5.internal.plastic.asm.Attribute
*/
public List<Attribute> attrs;
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/InsnList.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/InsnList.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/InsnList.java
index 8eaaf68..0a00c4b 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/InsnList.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/InsnList.java
@@ -521,6 +521,7 @@ public class InsnList {
}
// this class is not generified because it will create bridges
+ @SuppressWarnings("rawtypes")
private final class InsnListIterator implements ListIterator {
AbstractInsnNode next;
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/LookupSwitchInsnNode.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/LookupSwitchInsnNode.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/LookupSwitchInsnNode.java
index af635d7..0ecad60 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/LookupSwitchInsnNode.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/LookupSwitchInsnNode.java
@@ -81,7 +81,7 @@ public class LookupSwitchInsnNode extends AbstractInsnNode {
: labels.length);
if (keys != null) {
for (int i = 0; i < keys.length; ++i) {
- this.keys.add(new Integer(keys[i]));
+ this.keys.add(keys[i]);
}
}
if (labels != null) {
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodInsnNode.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodInsnNode.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodInsnNode.java
index 5d0c730..bc90ddd 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodInsnNode.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodInsnNode.java
@@ -131,6 +131,7 @@ public class MethodInsnNode extends AbstractInsnNode {
@Override
public void accept(final MethodVisitor mv) {
mv.visitMethodInsn(opcode, owner, name, desc, itf);
+ acceptAnnotations(mv);
}
@Override
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodNode.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodNode.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodNode.java
index 48115c2..3827653 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodNode.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/MethodNode.java
@@ -88,7 +88,7 @@ public class MethodNode extends MethodVisitor {
* The runtime visible annotations of this method. This list is a list of
* {@link AnnotationNode} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.AnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode
* @label visible
*/
public List<AnnotationNode> visibleAnnotations;
@@ -97,7 +97,7 @@ public class MethodNode extends MethodVisitor {
* The runtime invisible annotations of this method. This list is a list of
* {@link AnnotationNode} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.AnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode
* @label invisible
*/
public List<AnnotationNode> invisibleAnnotations;
@@ -106,7 +106,7 @@ public class MethodNode extends MethodVisitor {
* The runtime visible type annotations of this method. This list is a list
* of {@link TypeAnnotationNode} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.TypeAnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.TypeAnnotationNode
* @label visible
*/
public List<TypeAnnotationNode> visibleTypeAnnotations;
@@ -115,7 +115,7 @@ public class MethodNode extends MethodVisitor {
* The runtime invisible type annotations of this method. This list is a
* list of {@link TypeAnnotationNode} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.TypeAnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.TypeAnnotationNode
* @label invisible
*/
public List<TypeAnnotationNode> invisibleTypeAnnotations;
@@ -124,7 +124,7 @@ public class MethodNode extends MethodVisitor {
* The non standard attributes of this method. This list is a list of
* {@link Attribute} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.Attribute
+ * @associates org.apache.tapestry5.internal.plastic.asm.Attribute
*/
public List<Attribute> attrs;
@@ -142,7 +142,7 @@ public class MethodNode extends MethodVisitor {
* The runtime visible parameter annotations of this method. These lists are
* lists of {@link AnnotationNode} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.AnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode
* @label invisible parameters
*/
public List<AnnotationNode>[] visibleParameterAnnotations;
@@ -151,7 +151,7 @@ public class MethodNode extends MethodVisitor {
* The runtime invisible parameter annotations of this method. These lists
* are lists of {@link AnnotationNode} objects. May be <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.AnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.AnnotationNode
* @label visible parameters
*/
public List<AnnotationNode>[] invisibleParameterAnnotations;
@@ -160,7 +160,7 @@ public class MethodNode extends MethodVisitor {
* The instructions of this method. This list is a list of
* {@link AbstractInsnNode} objects.
*
- * @associates org.objectweb.asm.tree.AbstractInsnNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.AbstractInsnNode
* @label instructions
*/
public InsnList instructions;
@@ -169,7 +169,7 @@ public class MethodNode extends MethodVisitor {
* The try catch blocks of this method. This list is a list of
* {@link TryCatchBlockNode} objects.
*
- * @associates org.objectweb.asm.tree.TryCatchBlockNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.TryCatchBlockNode
*/
public List<TryCatchBlockNode> tryCatchBlocks;
@@ -187,7 +187,7 @@ public class MethodNode extends MethodVisitor {
* The local variables of this method. This list is a list of
* {@link LocalVariableNode} objects. May be <tt>null</tt>
*
- * @associates org.objectweb.asm.tree.LocalVariableNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.LocalVariableNode
*/
public List<LocalVariableNode> localVariables;
@@ -195,7 +195,7 @@ public class MethodNode extends MethodVisitor {
* The visible local variable annotations of this method. This list is a
* list of {@link LocalVariableAnnotationNode} objects. May be <tt>null</tt>
*
- * @associates org.objectweb.asm.tree.LocalVariableAnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.LocalVariableAnnotationNode
*/
public List<LocalVariableAnnotationNode> visibleLocalVariableAnnotations;
@@ -203,7 +203,7 @@ public class MethodNode extends MethodVisitor {
* The invisible local variable annotations of this method. This list is a
* list of {@link LocalVariableAnnotationNode} objects. May be <tt>null</tt>
*
- * @associates org.objectweb.asm.tree.LocalVariableAnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.LocalVariableAnnotationNode
*/
public List<LocalVariableAnnotationNode> invisibleLocalVariableAnnotations;
@@ -323,6 +323,7 @@ public class MethodNode extends MethodVisitor {
}
@Override
+ @SuppressWarnings("serial")
public AnnotationVisitor visitAnnotationDefault() {
return new AnnotationNode(new ArrayList<Object>(0) {
@Override
@@ -370,6 +371,7 @@ public class MethodNode extends MethodVisitor {
}
@Override
+ @SuppressWarnings("unchecked")
public AnnotationVisitor visitParameterAnnotation(final int parameter,
final String desc, final boolean visible) {
AnnotationNode an = new AnnotationNode(desc);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/TryCatchBlockNode.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/TryCatchBlockNode.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/TryCatchBlockNode.java
index a4c8dde..2609dda 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/TryCatchBlockNode.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/TryCatchBlockNode.java
@@ -66,7 +66,7 @@ public class TryCatchBlockNode {
* list is a list of {@link TypeAnnotationNode} objects. May be
* <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.TypeAnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.TypeAnnotationNode
* @label visible
*/
public List<TypeAnnotationNode> visibleTypeAnnotations;
@@ -76,7 +76,7 @@ public class TryCatchBlockNode {
* This list is a list of {@link TypeAnnotationNode} objects. May be
* <tt>null</tt>.
*
- * @associates org.objectweb.asm.tree.TypeAnnotationNode
+ * @associates org.apache.tapestry5.internal.plastic.asm.tree.TypeAnnotationNode
* @label invisible
*/
public List<TypeAnnotationNode> invisibleTypeAnnotations;
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/analysis/Analyzer.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/analysis/Analyzer.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/analysis/Analyzer.java
index a78fff4..fc88d8e 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/analysis/Analyzer.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/analysis/Analyzer.java
@@ -102,6 +102,7 @@ public class Analyzer<V extends Value> implements Opcodes {
* @throws AnalyzerException
* if a problem occurs during the analysis.
*/
+ @SuppressWarnings("unchecked")
public Frame<V>[] analyze(final String owner, final MethodNode m)
throws AnalyzerException {
if ((m.access & (ACC_ABSTRACT | ACC_NATIVE)) != 0) {
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/analysis/AnalyzerException.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/analysis/AnalyzerException.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/analysis/AnalyzerException.java
index 66c9df9..14f5cff 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/analysis/AnalyzerException.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/analysis/AnalyzerException.java
@@ -37,6 +37,7 @@ import org.apache.tapestry5.internal.plastic.asm.tree.AbstractInsnNode;
* @author Bing Ran
* @author Eric Bruneton
*/
+@SuppressWarnings("serial")
public class AnalyzerException extends Exception {
public final AbstractInsnNode node;
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/analysis/Frame.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/analysis/Frame.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/analysis/Frame.java
index fdbb0a9..9c74a62 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/analysis/Frame.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/tree/analysis/Frame.java
@@ -83,6 +83,7 @@ public class Frame<V extends Value> {
* @param nStack
* the maximum stack size of the frame.
*/
+ @SuppressWarnings("unchecked")
public Frame(final int nLocals, final int nStack) {
this.values = (V[]) new Value[nLocals + nStack];
this.locals = nLocals;
@@ -725,14 +726,14 @@ public class Frame<V extends Value> {
*/
@Override
public String toString() {
- StringBuffer b = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
for (int i = 0; i < getLocals(); ++i) {
- b.append(getLocal(i));
+ sb.append(getLocal(i));
}
- b.append(' ');
+ sb.append(' ');
for (int i = 0; i < getStackSize(); ++i) {
- b.append(getStack(i).toString());
+ sb.append(getStack(i).toString());
}
- return b.toString();
+ return sb.toString();
}
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/ASMifier.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/ASMifier.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/ASMifier.java
index 5b37a29..7d6339d 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/ASMifier.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/ASMifier.java
@@ -170,8 +170,7 @@ public class ASMifier extends Printer {
simpleName = name.substring(n + 1);
}
text.add("import java.util.*;\n");
- text.add("import org.objectweb.asm.*;\n");
- text.add("import org.objectweb.asm.attrs.*;\n");
+ text.add("import org.apache.tapestry5.internal.plastic.asm.*;\n");
text.add("public class " + simpleName + "Dump implements Opcodes {\n\n");
text.add("public static byte[] dump () throws Exception {\n\n");
text.add("ClassWriter cw = new ClassWriter(0);\n");
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/CheckClassAdapter.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/CheckClassAdapter.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/CheckClassAdapter.java
index 680f8a9..5b7d217 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/CheckClassAdapter.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/CheckClassAdapter.java
@@ -79,9 +79,9 @@ import java.util.*;
* insnNumber locals : stack):
*
* <pre>
- * org.objectweb.asm.tree.analysis.AnalyzerException: Error at instruction 71: Expected I, but found .
- * at org.objectweb.asm.tree.analysis.Analyzer.analyze(Analyzer.java:289)
- * at org.objectweb.asm.util.CheckClassAdapter.verify(CheckClassAdapter.java:135)
+ * org.apache.tapestry5.internal.plastic.asm.tree.analysis.AnalyzerException: Error at instruction 71: Expected I, but found .
+ * at org.apache.tapestry5.internal.plastic.asm.tree.analysis.Analyzer.analyze(Analyzer.java:289)
+ * at org.apache.tapestry5.internal.plastic.asm.util.CheckClassAdapter.verify(CheckClassAdapter.java:135)
* ...
* remove()V
* 00000 LinkedBlockingQueue$Itr . . . . . . . . :
@@ -255,26 +255,26 @@ public class CheckClassAdapter extends ClassVisitor {
for (int j = 0; j < method.instructions.size(); ++j) {
method.instructions.get(j).accept(mv);
- StringBuffer s = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
Frame<BasicValue> f = frames[j];
if (f == null) {
- s.append('?');
+ sb.append('?');
} else {
for (int k = 0; k < f.getLocals(); ++k) {
- s.append(getShortName(f.getLocal(k).toString()))
+ sb.append(getShortName(f.getLocal(k).toString()))
.append(' ');
}
- s.append(" : ");
+ sb.append(" : ");
for (int k = 0; k < f.getStackSize(); ++k) {
- s.append(getShortName(f.getStack(k).toString()))
+ sb.append(getShortName(f.getStack(k).toString()))
.append(' ');
}
}
- while (s.length() < method.maxStack + method.maxLocals + 1) {
- s.append(' ');
+ while (sb.length() < method.maxStack + method.maxLocals + 1) {
+ sb.append(' ');
}
pw.print(Integer.toString(j + 100000).substring(1));
- pw.print(" " + s + " : " + t.text.get(t.text.size() - 1));
+ pw.print(" " + sb + " : " + t.text.get(t.text.size() - 1));
}
for (int j = 0; j < method.tryCatchBlocks.size(); ++j) {
method.tryCatchBlocks.get(j).accept(mv);
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/CheckMethodAdapter.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/CheckMethodAdapter.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/CheckMethodAdapter.java
index 5770364..f1cf285 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/CheckMethodAdapter.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/CheckMethodAdapter.java
@@ -773,7 +773,7 @@ public class CheckMethodAdapter extends MethodVisitor {
if (labels.get(label) != null) {
throw new IllegalArgumentException("Already visited label");
}
- labels.put(label, new Integer(insnCount));
+ labels.put(label, insnCount);
super.visitLabel(label);
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/Textifier.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/Textifier.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/Textifier.java
index feae92d..27227e27 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/Textifier.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/util/Textifier.java
@@ -407,7 +407,7 @@ public class Textifier extends Printer {
}
buf.append(tab);
- appendAccess(access);
+ appendAccess(access & ~Opcodes.ACC_VOLATILE);
if ((access & Opcodes.ACC_NATIVE) != 0) {
buf.append("native ");
}
@@ -696,7 +696,7 @@ public class Textifier extends Printer {
Textifier t = createTextifier();
text.add(t.getText());
text.add(visible ? ") // parameter " : ") // invisible, parameter ");
- text.add(new Integer(parameter));
+ text.add(parameter);
text.add("\n");
return t;
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/ASMContentHandler.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/ASMContentHandler.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/ASMContentHandler.java
index 88dab5e..10f3a8f 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/ASMContentHandler.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/ASMContentHandler.java
@@ -320,7 +320,7 @@ public class ASMContentHandler extends DefaultHandler implements Opcodes {
static {
String[] types = SAXCodeAdapter.TYPES;
for (int i = 0; i < types.length; i++) {
- TYPES.put(types[i], new Integer(i));
+ TYPES.put(types[i], i);
}
}
@@ -686,7 +686,7 @@ public class ASMContentHandler extends DefaultHandler implements Opcodes {
int major = Integer.parseInt(attrs.getValue("major"));
int minor = Integer.parseInt(attrs.getValue("minor"));
HashMap<String, Object> vals = new HashMap<String, Object>();
- vals.put("version", new Integer(minor << 16 | major));
+ vals.put("version", minor << 16 | major);
vals.put("access", attrs.getValue("access"));
vals.put("name", attrs.getValue("name"));
vals.put("parent", attrs.getValue("parent"));
@@ -714,6 +714,7 @@ public class ASMContentHandler extends DefaultHandler implements Opcodes {
final class InterfaceRule extends Rule {
@Override
+ @SuppressWarnings("unchecked")
public final void begin(final String name, final Attributes attrs) {
((ArrayList<String>) ((HashMap<?, ?>) peek()).get("interfaces"))
.add(attrs.getValue("name"));
@@ -822,6 +823,7 @@ public class ASMContentHandler extends DefaultHandler implements Opcodes {
final class ExceptionRule extends Rule {
@Override
+ @SuppressWarnings("unchecked")
public final void begin(final String name, final Attributes attrs) {
((ArrayList<String>) ((HashMap<?, ?>) peek()).get("exceptions"))
.add(attrs.getValue("name"));
@@ -892,6 +894,7 @@ public class ASMContentHandler extends DefaultHandler implements Opcodes {
final class TableSwitchLabelRule extends Rule {
@Override
+ @SuppressWarnings("unchecked")
public final void begin(final String name, final Attributes attrs) {
((ArrayList<Label>) ((HashMap<?, ?>) peek()).get("labels"))
.add(getLabel(attrs.getValue("name")));
@@ -916,6 +919,7 @@ public class ASMContentHandler extends DefaultHandler implements Opcodes {
public final void end(final String name) {
HashMap<?, ?> vals = (HashMap<?, ?>) pop();
Label dflt = getLabel(vals.get("dflt"));
+ @SuppressWarnings("unchecked")
ArrayList<String> keyList = (ArrayList<String>) vals.get("keys");
ArrayList<?> lbls = (ArrayList<?>) vals.get("labels");
Label[] labels = lbls.toArray(new Label[lbls.size()]);
@@ -933,6 +937,7 @@ public class ASMContentHandler extends DefaultHandler implements Opcodes {
final class LookupSwitchLabelRule extends Rule {
@Override
+ @SuppressWarnings("unchecked")
public final void begin(final String name, final Attributes attrs) {
HashMap<?, ?> vals = (HashMap<?, ?>) peek();
((ArrayList<Label>) vals.get("labels")).add(getLabel(attrs
@@ -991,6 +996,7 @@ public class ASMContentHandler extends DefaultHandler implements Opcodes {
@Override
public void begin(final String name, final Attributes attrs) {
+ @SuppressWarnings("unchecked")
ArrayList<Object> types = (ArrayList<Object>) ((HashMap<?, ?>) peek())
.get(name);
String type = attrs.getValue("type");
@@ -1095,6 +1101,7 @@ public class ASMContentHandler extends DefaultHandler implements Opcodes {
@Override
public final void begin(final String element, final Attributes attrs)
throws SAXException {
+ @SuppressWarnings("unchecked")
ArrayList<Object> bsmArgs = (ArrayList<Object>) peek();
bsmArgs.add(getValue(attrs.getValue("desc"), attrs.getValue("cst")));
}
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/363f6175/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/SAXAnnotationAdapter.java
----------------------------------------------------------------------
diff --git a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/SAXAnnotationAdapter.java b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/SAXAnnotationAdapter.java
index 491c57e..5ac25e4 100644
--- a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/SAXAnnotationAdapter.java
+++ b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/SAXAnnotationAdapter.java
@@ -146,19 +146,19 @@ public final class SAXAnnotationAdapter extends AnnotationVisitor {
if (value instanceof byte[]) {
byte[] b = (byte[]) value;
for (int i = 0; i < b.length; i++) {
- av.visit(null, new Byte(b[i]));
+ av.visit(null, b[i]);
}
} else if (value instanceof char[]) {
char[] b = (char[]) value;
for (int i = 0; i < b.length; i++) {
- av.visit(null, new Character(b[i]));
+ av.visit(null, b[i]);
}
} else if (value instanceof short[]) {
short[] b = (short[]) value;
for (int i = 0; i < b.length; i++) {
- av.visit(null, new Short(b[i]));
+ av.visit(null, b[i]);
}
} else if (value instanceof boolean[]) {
@@ -170,25 +170,25 @@ public final class SAXAnnotationAdapter extends AnnotationVisitor {
} else if (value instanceof int[]) {
int[] b = (int[]) value;
for (int i = 0; i < b.length; i++) {
- av.visit(null, new Integer(b[i]));
+ av.visit(null, b[i]);
}
} else if (value instanceof long[]) {
long[] b = (long[]) value;
for (int i = 0; i < b.length; i++) {
- av.visit(null, new Long(b[i]));
+ av.visit(null, b[i]);
}
} else if (value instanceof float[]) {
float[] b = (float[]) value;
for (int i = 0; i < b.length; i++) {
- av.visit(null, new Float(b[i]));
+ av.visit(null, b[i]);
}
} else if (value instanceof double[]) {
double[] b = (double[]) value;
for (int i = 0; i < b.length; i++) {
- av.visit(null, new Double(b[i]));
+ av.visit(null, b[i]);
}
}