summaryrefslogtreecommitdiff
path: root/src/proguard/classfile/attribute/visitor
diff options
context:
space:
mode:
authorBrian Carlstrom <bdc@google.com>2015-01-09 00:45:23 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-01-09 00:45:23 +0000
commit6af8f1004e0efe02a138286a34e833d1f3d227d7 (patch)
tree9ac962825d41c4fb8ad1ec0fc2e8b441b42d3869 /src/proguard/classfile/attribute/visitor
parent9961286c06c25cd03464d3e2b00bd9b9dedf96ba (diff)
parentcd9e071098d0539dda3a4a5d3f45cfd8814de4ed (diff)
downloadproguard-6af8f1004e0efe02a138286a34e833d1f3d227d7.tar.gz
Merge "Upgrade Proguard to 5.1."
Diffstat (limited to 'src/proguard/classfile/attribute/visitor')
-rw-r--r--src/proguard/classfile/attribute/visitor/AllAttributeVisitor.java2
-rw-r--r--src/proguard/classfile/attribute/visitor/AllBootstrapMethodInfoVisitor.java4
-rw-r--r--src/proguard/classfile/attribute/visitor/AllExceptionInfoVisitor.java2
-rw-r--r--src/proguard/classfile/attribute/visitor/AllInnerClassesInfoVisitor.java4
-rw-r--r--src/proguard/classfile/attribute/visitor/AttributeNameFilter.java147
-rw-r--r--src/proguard/classfile/attribute/visitor/AttributeVisitor.java17
-rwxr-xr-xsrc/proguard/classfile/attribute/visitor/BootstrapMethodInfoVisitor.java8
-rw-r--r--src/proguard/classfile/attribute/visitor/ExceptionInfoVisitor.java2
-rw-r--r--src/proguard/classfile/attribute/visitor/InnerClassesInfoVisitor.java2
-rw-r--r--src/proguard/classfile/attribute/visitor/LineNumberInfoVisitor.java2
-rw-r--r--src/proguard/classfile/attribute/visitor/LocalVariableInfoVisitor.java2
-rw-r--r--src/proguard/classfile/attribute/visitor/LocalVariableTypeInfoVisitor.java2
-rw-r--r--src/proguard/classfile/attribute/visitor/MultiAttributeVisitor.java83
-rw-r--r--src/proguard/classfile/attribute/visitor/NonEmptyAttributeFilter.java152
-rw-r--r--src/proguard/classfile/attribute/visitor/ParameterInfoVisitor.java37
-rw-r--r--src/proguard/classfile/attribute/visitor/RequiredAttributeFilter.java147
-rw-r--r--src/proguard/classfile/attribute/visitor/StackSizeComputer.java4
17 files changed, 493 insertions, 124 deletions
diff --git a/src/proguard/classfile/attribute/visitor/AllAttributeVisitor.java b/src/proguard/classfile/attribute/visitor/AllAttributeVisitor.java
index 9d8801c..701451e 100644
--- a/src/proguard/classfile/attribute/visitor/AllAttributeVisitor.java
+++ b/src/proguard/classfile/attribute/visitor/AllAttributeVisitor.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
diff --git a/src/proguard/classfile/attribute/visitor/AllBootstrapMethodInfoVisitor.java b/src/proguard/classfile/attribute/visitor/AllBootstrapMethodInfoVisitor.java
index d70803c..6110325 100644
--- a/src/proguard/classfile/attribute/visitor/AllBootstrapMethodInfoVisitor.java
+++ b/src/proguard/classfile/attribute/visitor/AllBootstrapMethodInfoVisitor.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
@@ -20,7 +20,7 @@
*/
package proguard.classfile.attribute.visitor;
-import proguard.classfile.*;
+import proguard.classfile.Clazz;
import proguard.classfile.attribute.*;
import proguard.classfile.util.SimplifiedVisitor;
diff --git a/src/proguard/classfile/attribute/visitor/AllExceptionInfoVisitor.java b/src/proguard/classfile/attribute/visitor/AllExceptionInfoVisitor.java
index 927bfd9..9b6c9de 100644
--- a/src/proguard/classfile/attribute/visitor/AllExceptionInfoVisitor.java
+++ b/src/proguard/classfile/attribute/visitor/AllExceptionInfoVisitor.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
diff --git a/src/proguard/classfile/attribute/visitor/AllInnerClassesInfoVisitor.java b/src/proguard/classfile/attribute/visitor/AllInnerClassesInfoVisitor.java
index 2422218..b1005c8 100644
--- a/src/proguard/classfile/attribute/visitor/AllInnerClassesInfoVisitor.java
+++ b/src/proguard/classfile/attribute/visitor/AllInnerClassesInfoVisitor.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
@@ -20,7 +20,7 @@
*/
package proguard.classfile.attribute.visitor;
-import proguard.classfile.*;
+import proguard.classfile.Clazz;
import proguard.classfile.attribute.*;
import proguard.classfile.util.SimplifiedVisitor;
diff --git a/src/proguard/classfile/attribute/visitor/AttributeNameFilter.java b/src/proguard/classfile/attribute/visitor/AttributeNameFilter.java
index 0db77d5..14c1edc 100644
--- a/src/proguard/classfile/attribute/visitor/AttributeNameFilter.java
+++ b/src/proguard/classfile/attribute/visitor/AttributeNameFilter.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
@@ -93,7 +93,7 @@ implements AttributeVisitor
{
if (accepted(clazz, unknownAttribute))
{
- unknownAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitUnknownAttribute(clazz, unknownAttribute);
}
}
@@ -102,7 +102,7 @@ implements AttributeVisitor
{
if (accepted(clazz, bootstrapMethodsAttribute))
{
- bootstrapMethodsAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitBootstrapMethodsAttribute(clazz, bootstrapMethodsAttribute);
}
}
@@ -111,7 +111,7 @@ implements AttributeVisitor
{
if (accepted(clazz, sourceFileAttribute))
{
- sourceFileAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitSourceFileAttribute(clazz, sourceFileAttribute);
}
}
@@ -120,7 +120,7 @@ implements AttributeVisitor
{
if (accepted(clazz, sourceDirAttribute))
{
- sourceDirAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitSourceDirAttribute(clazz, sourceDirAttribute);
}
}
@@ -129,7 +129,7 @@ implements AttributeVisitor
{
if (accepted(clazz, innerClassesAttribute))
{
- innerClassesAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitInnerClassesAttribute(clazz, innerClassesAttribute);
}
}
@@ -138,7 +138,7 @@ implements AttributeVisitor
{
if (accepted(clazz, enclosingMethodAttribute))
{
- enclosingMethodAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitEnclosingMethodAttribute(clazz, enclosingMethodAttribute);
}
}
@@ -147,7 +147,7 @@ implements AttributeVisitor
{
if (accepted(clazz, deprecatedAttribute))
{
- deprecatedAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitDeprecatedAttribute(clazz, deprecatedAttribute);
}
}
@@ -156,7 +156,7 @@ implements AttributeVisitor
{
if (accepted(clazz, deprecatedAttribute))
{
- deprecatedAttribute.accept(clazz, field, attributeVisitor);
+ attributeVisitor.visitDeprecatedAttribute(clazz, field, deprecatedAttribute);
}
}
@@ -165,7 +165,7 @@ implements AttributeVisitor
{
if (accepted(clazz, deprecatedAttribute))
{
- deprecatedAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitDeprecatedAttribute(clazz, method, deprecatedAttribute);
}
}
@@ -174,7 +174,7 @@ implements AttributeVisitor
{
if (accepted(clazz, syntheticAttribute))
{
- syntheticAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitSyntheticAttribute(clazz, syntheticAttribute);
}
}
@@ -183,7 +183,7 @@ implements AttributeVisitor
{
if (accepted(clazz, syntheticAttribute))
{
- syntheticAttribute.accept(clazz, field, attributeVisitor);
+ attributeVisitor.visitSyntheticAttribute(clazz, field, syntheticAttribute);
}
}
@@ -192,7 +192,7 @@ implements AttributeVisitor
{
if (accepted(clazz, syntheticAttribute))
{
- syntheticAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitSyntheticAttribute(clazz, method, syntheticAttribute);
}
}
@@ -201,7 +201,7 @@ implements AttributeVisitor
{
if (accepted(clazz, signatureAttribute))
{
- signatureAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitSignatureAttribute(clazz, signatureAttribute);
}
}
@@ -210,7 +210,7 @@ implements AttributeVisitor
{
if (accepted(clazz, signatureAttribute))
{
- signatureAttribute.accept(clazz, field, attributeVisitor);
+ attributeVisitor.visitSignatureAttribute(clazz, field, signatureAttribute);
}
}
@@ -219,7 +219,7 @@ implements AttributeVisitor
{
if (accepted(clazz, signatureAttribute))
{
- signatureAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitSignatureAttribute(clazz, method, signatureAttribute);
}
}
@@ -228,7 +228,16 @@ implements AttributeVisitor
{
if (accepted(clazz, constantValueAttribute))
{
- constantValueAttribute.accept(clazz, field, attributeVisitor);
+ attributeVisitor.visitConstantValueAttribute(clazz, field, constantValueAttribute);
+ }
+ }
+
+
+ public void visitMethodParametersAttribute(Clazz clazz, Method method, MethodParametersAttribute exceptionsAttribute)
+ {
+ if (accepted(clazz, exceptionsAttribute))
+ {
+ attributeVisitor.visitMethodParametersAttribute(clazz, method, exceptionsAttribute);
}
}
@@ -237,7 +246,7 @@ implements AttributeVisitor
{
if (accepted(clazz, exceptionsAttribute))
{
- exceptionsAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitExceptionsAttribute(clazz, method, exceptionsAttribute);
}
}
@@ -246,7 +255,7 @@ implements AttributeVisitor
{
if (accepted(clazz, codeAttribute))
{
- codeAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitCodeAttribute(clazz, method, codeAttribute);
}
}
@@ -255,7 +264,7 @@ implements AttributeVisitor
{
if (accepted(clazz, stackMapAttribute))
{
- stackMapAttribute.accept(clazz, method, codeAttribute, attributeVisitor);
+ attributeVisitor.visitStackMapAttribute(clazz, method, codeAttribute, stackMapAttribute);
}
}
@@ -264,7 +273,7 @@ implements AttributeVisitor
{
if (accepted(clazz, stackMapTableAttribute))
{
- stackMapTableAttribute.accept(clazz, method, codeAttribute, attributeVisitor);
+ attributeVisitor.visitStackMapTableAttribute(clazz, method, codeAttribute, stackMapTableAttribute);
}
}
@@ -273,7 +282,7 @@ implements AttributeVisitor
{
if (accepted(clazz, lineNumberTableAttribute))
{
- lineNumberTableAttribute.accept(clazz, method, codeAttribute, attributeVisitor);
+ attributeVisitor.visitLineNumberTableAttribute(clazz, method, codeAttribute, lineNumberTableAttribute);
}
}
@@ -282,7 +291,7 @@ implements AttributeVisitor
{
if (accepted(clazz, localVariableTableAttribute))
{
- localVariableTableAttribute.accept(clazz, method, codeAttribute, attributeVisitor);
+ attributeVisitor.visitLocalVariableTableAttribute(clazz, method, codeAttribute, localVariableTableAttribute);
}
}
@@ -291,7 +300,7 @@ implements AttributeVisitor
{
if (accepted(clazz, localVariableTypeTableAttribute))
{
- localVariableTypeTableAttribute.accept(clazz, method, codeAttribute, attributeVisitor);
+ attributeVisitor.visitLocalVariableTypeTableAttribute(clazz, method, codeAttribute, localVariableTypeTableAttribute);
}
}
@@ -300,7 +309,7 @@ implements AttributeVisitor
{
if (accepted(clazz, runtimeVisibleAnnotationsAttribute))
{
- runtimeVisibleAnnotationsAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, runtimeVisibleAnnotationsAttribute);
}
}
@@ -309,7 +318,7 @@ implements AttributeVisitor
{
if (accepted(clazz, runtimeVisibleAnnotationsAttribute))
{
- runtimeVisibleAnnotationsAttribute.accept(clazz, field, attributeVisitor);
+ attributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, field, runtimeVisibleAnnotationsAttribute);
}
}
@@ -318,7 +327,7 @@ implements AttributeVisitor
{
if (accepted(clazz, runtimeVisibleAnnotationsAttribute))
{
- runtimeVisibleAnnotationsAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, method, runtimeVisibleAnnotationsAttribute);
}
}
@@ -327,7 +336,7 @@ implements AttributeVisitor
{
if (accepted(clazz, runtimeInvisibleAnnotationsAttribute))
{
- runtimeInvisibleAnnotationsAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, runtimeInvisibleAnnotationsAttribute);
}
}
@@ -336,7 +345,7 @@ implements AttributeVisitor
{
if (accepted(clazz, runtimeInvisibleAnnotationsAttribute))
{
- runtimeInvisibleAnnotationsAttribute.accept(clazz, field, attributeVisitor);
+ attributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, field, runtimeInvisibleAnnotationsAttribute);
}
}
@@ -345,7 +354,7 @@ implements AttributeVisitor
{
if (accepted(clazz, runtimeInvisibleAnnotationsAttribute))
{
- runtimeInvisibleAnnotationsAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, method, runtimeInvisibleAnnotationsAttribute);
}
}
@@ -354,7 +363,7 @@ implements AttributeVisitor
{
if (accepted(clazz, runtimeVisibleParameterAnnotationsAttribute))
{
- runtimeVisibleParameterAnnotationsAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitRuntimeVisibleParameterAnnotationsAttribute(clazz, method, runtimeVisibleParameterAnnotationsAttribute);
}
}
@@ -363,7 +372,79 @@ implements AttributeVisitor
{
if (accepted(clazz, runtimeInvisibleParameterAnnotationsAttribute))
{
- runtimeInvisibleParameterAnnotationsAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitRuntimeInvisibleParameterAnnotationsAttribute(clazz, method, runtimeInvisibleParameterAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
+ {
+ if (accepted(clazz, runtimeVisibleTypeAnnotationsAttribute))
+ {
+ attributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, runtimeVisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
+ {
+ if (accepted(clazz, runtimeVisibleTypeAnnotationsAttribute))
+ {
+ attributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, field, runtimeVisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
+ {
+ if (accepted(clazz, runtimeVisibleTypeAnnotationsAttribute))
+ {
+ attributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, runtimeVisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
+ {
+ if (accepted(clazz, runtimeVisibleTypeAnnotationsAttribute))
+ {
+ attributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, codeAttribute, runtimeVisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
+ {
+ if (accepted(clazz, runtimeInvisibleTypeAnnotationsAttribute))
+ {
+ attributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, runtimeInvisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
+ {
+ if (accepted(clazz, runtimeInvisibleTypeAnnotationsAttribute))
+ {
+ attributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, field, runtimeInvisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
+ {
+ if (accepted(clazz, runtimeInvisibleTypeAnnotationsAttribute))
+ {
+ attributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, runtimeInvisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
+ {
+ if (accepted(clazz, runtimeInvisibleTypeAnnotationsAttribute))
+ {
+ attributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, codeAttribute, runtimeInvisibleTypeAnnotationsAttribute);
}
}
@@ -372,7 +453,7 @@ implements AttributeVisitor
{
if (accepted(clazz, annotationDefaultAttribute))
{
- annotationDefaultAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitAnnotationDefaultAttribute(clazz, method, annotationDefaultAttribute);
}
}
diff --git a/src/proguard/classfile/attribute/visitor/AttributeVisitor.java b/src/proguard/classfile/attribute/visitor/AttributeVisitor.java
index 76c1ab9..a9fc6b6 100644
--- a/src/proguard/classfile/attribute/visitor/AttributeVisitor.java
+++ b/src/proguard/classfile/attribute/visitor/AttributeVisitor.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
@@ -62,8 +62,9 @@ public interface AttributeVisitor
// Attributes that are attached to methods.
- public void visitExceptionsAttribute( Clazz clazz, Method method, ExceptionsAttribute exceptionsAttribute);
- public void visitCodeAttribute( Clazz clazz, Method method, CodeAttribute codeAttribute);
+ public void visitMethodParametersAttribute( Clazz clazz, Method method, MethodParametersAttribute methodParametersAttribute);
+ public void visitExceptionsAttribute( Clazz clazz, Method method, ExceptionsAttribute exceptionsAttribute);
+ public void visitCodeAttribute( Clazz clazz, Method method, CodeAttribute codeAttribute);
// Attributes that are attached to code attributes.
@@ -86,5 +87,15 @@ public interface AttributeVisitor
public void visitRuntimeVisibleParameterAnnotationsAttribute( Clazz clazz, Method method, RuntimeVisibleParameterAnnotationsAttribute runtimeVisibleParameterAnnotationsAttribute);
public void visitRuntimeInvisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleParameterAnnotationsAttribute runtimeInvisibleParameterAnnotationsAttribute);
+ public void visitRuntimeVisibleTypeAnnotationsAttribute( Clazz clazz, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute);
+ public void visitRuntimeVisibleTypeAnnotationsAttribute( Clazz clazz, Field field, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute);
+ public void visitRuntimeVisibleTypeAnnotationsAttribute( Clazz clazz, Method method, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute);
+ public void visitRuntimeVisibleTypeAnnotationsAttribute( Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute);
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute( Clazz clazz, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute);
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute( Clazz clazz, Field field, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute);
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute( Clazz clazz, Method method, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute);
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute( Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute);
+
public void visitAnnotationDefaultAttribute( Clazz clazz, Method method, AnnotationDefaultAttribute annotationDefaultAttribute);
}
diff --git a/src/proguard/classfile/attribute/visitor/BootstrapMethodInfoVisitor.java b/src/proguard/classfile/attribute/visitor/BootstrapMethodInfoVisitor.java
index 9aab92e..fb2a9d6 100755
--- a/src/proguard/classfile/attribute/visitor/BootstrapMethodInfoVisitor.java
+++ b/src/proguard/classfile/attribute/visitor/BootstrapMethodInfoVisitor.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
@@ -20,10 +20,8 @@
*/
package proguard.classfile.attribute.visitor;
-import proguard.classfile.*;
-import proguard.classfile.attribute.*;
-
-import java.beans.MethodDescriptor;
+import proguard.classfile.Clazz;
+import proguard.classfile.attribute.BootstrapMethodInfo;
/**
diff --git a/src/proguard/classfile/attribute/visitor/ExceptionInfoVisitor.java b/src/proguard/classfile/attribute/visitor/ExceptionInfoVisitor.java
index 4a765f2..953dc06 100644
--- a/src/proguard/classfile/attribute/visitor/ExceptionInfoVisitor.java
+++ b/src/proguard/classfile/attribute/visitor/ExceptionInfoVisitor.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
diff --git a/src/proguard/classfile/attribute/visitor/InnerClassesInfoVisitor.java b/src/proguard/classfile/attribute/visitor/InnerClassesInfoVisitor.java
index b373493..f9e1a03 100644
--- a/src/proguard/classfile/attribute/visitor/InnerClassesInfoVisitor.java
+++ b/src/proguard/classfile/attribute/visitor/InnerClassesInfoVisitor.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
diff --git a/src/proguard/classfile/attribute/visitor/LineNumberInfoVisitor.java b/src/proguard/classfile/attribute/visitor/LineNumberInfoVisitor.java
index 189b3d0..5a6400d 100644
--- a/src/proguard/classfile/attribute/visitor/LineNumberInfoVisitor.java
+++ b/src/proguard/classfile/attribute/visitor/LineNumberInfoVisitor.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
diff --git a/src/proguard/classfile/attribute/visitor/LocalVariableInfoVisitor.java b/src/proguard/classfile/attribute/visitor/LocalVariableInfoVisitor.java
index c888d63..dd17bea 100644
--- a/src/proguard/classfile/attribute/visitor/LocalVariableInfoVisitor.java
+++ b/src/proguard/classfile/attribute/visitor/LocalVariableInfoVisitor.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
diff --git a/src/proguard/classfile/attribute/visitor/LocalVariableTypeInfoVisitor.java b/src/proguard/classfile/attribute/visitor/LocalVariableTypeInfoVisitor.java
index f992e6d..c37e9d7 100644
--- a/src/proguard/classfile/attribute/visitor/LocalVariableTypeInfoVisitor.java
+++ b/src/proguard/classfile/attribute/visitor/LocalVariableTypeInfoVisitor.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
diff --git a/src/proguard/classfile/attribute/visitor/MultiAttributeVisitor.java b/src/proguard/classfile/attribute/visitor/MultiAttributeVisitor.java
index 37c0639..968f852 100644
--- a/src/proguard/classfile/attribute/visitor/MultiAttributeVisitor.java
+++ b/src/proguard/classfile/attribute/visitor/MultiAttributeVisitor.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
@@ -220,6 +220,15 @@ public class MultiAttributeVisitor implements AttributeVisitor
}
+ public void visitMethodParametersAttribute(Clazz clazz, Method method, MethodParametersAttribute methodParametersAttribute)
+ {
+ for (int index = 0; index < attributeVisitors.length; index++)
+ {
+ attributeVisitors[index].visitMethodParametersAttribute(clazz, method, methodParametersAttribute);
+ }
+ }
+
+
public void visitExceptionsAttribute(Clazz clazz, Method method, ExceptionsAttribute exceptionsAttribute)
{
for (int index = 0; index < attributeVisitors.length; index++)
@@ -355,6 +364,78 @@ public class MultiAttributeVisitor implements AttributeVisitor
}
+ public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
+ {
+ for (int index = 0; index < attributeVisitors.length; index++)
+ {
+ attributeVisitors[index].visitRuntimeVisibleTypeAnnotationsAttribute(clazz, runtimeVisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
+ {
+ for (int index = 0; index < attributeVisitors.length; index++)
+ {
+ attributeVisitors[index].visitRuntimeVisibleTypeAnnotationsAttribute(clazz, field, runtimeVisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
+ {
+ for (int index = 0; index < attributeVisitors.length; index++)
+ {
+ attributeVisitors[index].visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, runtimeVisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
+ {
+ for (int index = 0; index < attributeVisitors.length; index++)
+ {
+ attributeVisitors[index].visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, codeAttribute, runtimeVisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
+ {
+ for (int index = 0; index < attributeVisitors.length; index++)
+ {
+ attributeVisitors[index].visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, runtimeInvisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
+ {
+ for (int index = 0; index < attributeVisitors.length; index++)
+ {
+ attributeVisitors[index].visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, field, runtimeInvisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
+ {
+ for (int index = 0; index < attributeVisitors.length; index++)
+ {
+ attributeVisitors[index].visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, runtimeInvisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
+ {
+ for (int index = 0; index < attributeVisitors.length; index++)
+ {
+ attributeVisitors[index].visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, codeAttribute, runtimeInvisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
public void visitAnnotationDefaultAttribute(Clazz clazz, Method method, AnnotationDefaultAttribute annotationDefaultAttribute)
{
for (int index = 0; index < attributeVisitors.length; index++)
diff --git a/src/proguard/classfile/attribute/visitor/NonEmptyAttributeFilter.java b/src/proguard/classfile/attribute/visitor/NonEmptyAttributeFilter.java
index 2ccc09c..4a54f75 100644
--- a/src/proguard/classfile/attribute/visitor/NonEmptyAttributeFilter.java
+++ b/src/proguard/classfile/attribute/visitor/NonEmptyAttributeFilter.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
@@ -24,7 +24,6 @@ import proguard.classfile.*;
import proguard.classfile.attribute.*;
import proguard.classfile.attribute.annotation.*;
import proguard.classfile.attribute.preverification.*;
-import proguard.util.StringMatcher;
/**
* This AttributeVisitor delegates its visits another AttributeVisitor, but
@@ -54,7 +53,7 @@ implements AttributeVisitor
public void visitUnknownAttribute(Clazz clazz, UnknownAttribute unknownAttribute)
{
- unknownAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitUnknownAttribute(clazz, unknownAttribute);
}
@@ -62,20 +61,20 @@ implements AttributeVisitor
{
if (bootstrapMethodsAttribute.u2bootstrapMethodsCount > 0)
{
- bootstrapMethodsAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitBootstrapMethodsAttribute(clazz, bootstrapMethodsAttribute);
}
}
public void visitSourceFileAttribute(Clazz clazz, SourceFileAttribute sourceFileAttribute)
{
- sourceFileAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitSourceFileAttribute(clazz, sourceFileAttribute);
}
public void visitSourceDirAttribute(Clazz clazz, SourceDirAttribute sourceDirAttribute)
{
- sourceDirAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitSourceDirAttribute(clazz, sourceDirAttribute);
}
@@ -83,74 +82,83 @@ implements AttributeVisitor
{
if (innerClassesAttribute.u2classesCount > 0)
{
- innerClassesAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitInnerClassesAttribute(clazz, innerClassesAttribute);
}
}
public void visitEnclosingMethodAttribute(Clazz clazz, EnclosingMethodAttribute enclosingMethodAttribute)
{
- enclosingMethodAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitEnclosingMethodAttribute(clazz, enclosingMethodAttribute);
}
public void visitDeprecatedAttribute(Clazz clazz, DeprecatedAttribute deprecatedAttribute)
{
- deprecatedAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitDeprecatedAttribute(clazz, deprecatedAttribute);
}
public void visitDeprecatedAttribute(Clazz clazz, Field field, DeprecatedAttribute deprecatedAttribute)
{
- deprecatedAttribute.accept(clazz, field, attributeVisitor);
+ attributeVisitor.visitDeprecatedAttribute(clazz, field, deprecatedAttribute);
}
public void visitDeprecatedAttribute(Clazz clazz, Method method, DeprecatedAttribute deprecatedAttribute)
{
- deprecatedAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitDeprecatedAttribute(clazz, method, deprecatedAttribute);
}
public void visitSyntheticAttribute(Clazz clazz, SyntheticAttribute syntheticAttribute)
{
- syntheticAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitSyntheticAttribute(clazz, syntheticAttribute);
}
public void visitSyntheticAttribute(Clazz clazz, Field field, SyntheticAttribute syntheticAttribute)
{
- syntheticAttribute.accept(clazz, field, attributeVisitor);
+ attributeVisitor.visitSyntheticAttribute(clazz, field, syntheticAttribute);
}
public void visitSyntheticAttribute(Clazz clazz, Method method, SyntheticAttribute syntheticAttribute)
{
- syntheticAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitSyntheticAttribute(clazz, method, syntheticAttribute);
}
public void visitSignatureAttribute(Clazz clazz, SignatureAttribute signatureAttribute)
{
- signatureAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitSignatureAttribute(clazz, signatureAttribute);
}
public void visitSignatureAttribute(Clazz clazz, Field field, SignatureAttribute signatureAttribute)
{
- signatureAttribute.accept(clazz, field, attributeVisitor);
+ attributeVisitor.visitSignatureAttribute(clazz, field, signatureAttribute);
}
public void visitSignatureAttribute(Clazz clazz, Method method, SignatureAttribute signatureAttribute)
{
- signatureAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitSignatureAttribute(clazz, method, signatureAttribute);
}
public void visitConstantValueAttribute(Clazz clazz, Field field, ConstantValueAttribute constantValueAttribute)
{
- constantValueAttribute.accept(clazz, field, attributeVisitor);
+ attributeVisitor.visitConstantValueAttribute(clazz, field, constantValueAttribute);
+ }
+
+
+ public void visitMethodParametersAttribute(Clazz clazz, Method method, MethodParametersAttribute exceptionsAttribute)
+ {
+ if (exceptionsAttribute.u1parametersCount > 0)
+ {
+ attributeVisitor.visitMethodParametersAttribute(clazz, method, exceptionsAttribute);
+ }
}
@@ -158,14 +166,14 @@ implements AttributeVisitor
{
if (exceptionsAttribute.u2exceptionIndexTableLength > 0)
{
- exceptionsAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitExceptionsAttribute(clazz, method, exceptionsAttribute);
}
}
public void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute)
{
- codeAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitCodeAttribute(clazz, method, codeAttribute);
}
@@ -173,7 +181,7 @@ implements AttributeVisitor
{
if (stackMapAttribute.u2stackMapFramesCount > 0)
{
- stackMapAttribute.accept(clazz, method, codeAttribute, attributeVisitor);
+ attributeVisitor.visitStackMapAttribute(clazz, method, codeAttribute, stackMapAttribute);
}
}
@@ -182,7 +190,7 @@ implements AttributeVisitor
{
if (stackMapTableAttribute.u2stackMapFramesCount > 0)
{
- stackMapTableAttribute.accept(clazz, method, codeAttribute, attributeVisitor);
+ attributeVisitor.visitStackMapTableAttribute(clazz, method, codeAttribute, stackMapTableAttribute);
}
}
@@ -191,7 +199,7 @@ implements AttributeVisitor
{
if (lineNumberTableAttribute.u2lineNumberTableLength > 0)
{
- lineNumberTableAttribute.accept(clazz, method, codeAttribute, attributeVisitor);
+ attributeVisitor.visitLineNumberTableAttribute(clazz, method, codeAttribute, lineNumberTableAttribute);
}
}
@@ -200,7 +208,7 @@ implements AttributeVisitor
{
if (localVariableTableAttribute.u2localVariableTableLength > 0)
{
- localVariableTableAttribute.accept(clazz, method, codeAttribute, attributeVisitor);
+ attributeVisitor.visitLocalVariableTableAttribute(clazz, method, codeAttribute, localVariableTableAttribute);
}
}
@@ -209,7 +217,7 @@ implements AttributeVisitor
{
if (localVariableTypeTableAttribute.u2localVariableTypeTableLength > 0)
{
- localVariableTypeTableAttribute.accept(clazz, method, codeAttribute, attributeVisitor);
+ attributeVisitor.visitLocalVariableTypeTableAttribute(clazz, method, codeAttribute, localVariableTypeTableAttribute);
}
}
@@ -218,7 +226,7 @@ implements AttributeVisitor
{
if (runtimeVisibleAnnotationsAttribute.u2annotationsCount > 0)
{
- runtimeVisibleAnnotationsAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, runtimeVisibleAnnotationsAttribute);
}
}
@@ -227,7 +235,7 @@ implements AttributeVisitor
{
if (runtimeVisibleAnnotationsAttribute.u2annotationsCount > 0)
{
- runtimeVisibleAnnotationsAttribute.accept(clazz, field, attributeVisitor);
+ attributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, field, runtimeVisibleAnnotationsAttribute);
}
}
@@ -236,7 +244,7 @@ implements AttributeVisitor
{
if (runtimeVisibleAnnotationsAttribute.u2annotationsCount > 0)
{
- runtimeVisibleAnnotationsAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, method, runtimeVisibleAnnotationsAttribute);
}
}
@@ -245,7 +253,7 @@ implements AttributeVisitor
{
if (runtimeInvisibleAnnotationsAttribute.u2annotationsCount > 0)
{
- runtimeInvisibleAnnotationsAttribute.accept(clazz, attributeVisitor);
+ attributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, runtimeInvisibleAnnotationsAttribute);
}
}
@@ -254,7 +262,7 @@ implements AttributeVisitor
{
if (runtimeInvisibleAnnotationsAttribute.u2annotationsCount > 0)
{
- runtimeInvisibleAnnotationsAttribute.accept(clazz, field, attributeVisitor);
+ attributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, field, runtimeInvisibleAnnotationsAttribute);
}
}
@@ -263,31 +271,103 @@ implements AttributeVisitor
{
if (runtimeInvisibleAnnotationsAttribute.u2annotationsCount > 0)
{
- runtimeInvisibleAnnotationsAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, method, runtimeInvisibleAnnotationsAttribute);
}
}
public void visitRuntimeVisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleParameterAnnotationsAttribute runtimeVisibleParameterAnnotationsAttribute)
{
- if (runtimeVisibleParameterAnnotationsAttribute.u2parametersCount > 0)
+ if (runtimeVisibleParameterAnnotationsAttribute.u1parametersCount > 0)
{
- runtimeVisibleParameterAnnotationsAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitRuntimeVisibleParameterAnnotationsAttribute(clazz, method, runtimeVisibleParameterAnnotationsAttribute);
}
}
public void visitRuntimeInvisibleParameterAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleParameterAnnotationsAttribute runtimeInvisibleParameterAnnotationsAttribute)
{
- if (runtimeInvisibleParameterAnnotationsAttribute.u2parametersCount > 0)
+ if (runtimeInvisibleParameterAnnotationsAttribute.u1parametersCount > 0)
+ {
+ attributeVisitor.visitRuntimeInvisibleParameterAnnotationsAttribute(clazz, method, runtimeInvisibleParameterAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
+ {
+ if (runtimeVisibleTypeAnnotationsAttribute.u2annotationsCount > 0)
+ {
+ attributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, runtimeVisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
+ {
+ if (runtimeVisibleTypeAnnotationsAttribute.u2annotationsCount > 0)
+ {
+ attributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, field, runtimeVisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
+ {
+ if (runtimeVisibleTypeAnnotationsAttribute.u2annotationsCount > 0)
+ {
+ attributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, runtimeVisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
+ {
+ if (runtimeVisibleTypeAnnotationsAttribute.u2annotationsCount > 0)
+ {
+ attributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, codeAttribute, runtimeVisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
+ {
+ if (runtimeInvisibleTypeAnnotationsAttribute.u2annotationsCount > 0)
+ {
+ attributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, runtimeInvisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
+ {
+ if (runtimeInvisibleTypeAnnotationsAttribute.u2annotationsCount > 0)
+ {
+ attributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, field, runtimeInvisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
+ {
+ if (runtimeInvisibleTypeAnnotationsAttribute.u2annotationsCount > 0)
+ {
+ attributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, runtimeInvisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
+ {
+ if (runtimeInvisibleTypeAnnotationsAttribute.u2annotationsCount > 0)
{
- runtimeInvisibleParameterAnnotationsAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, codeAttribute, runtimeInvisibleTypeAnnotationsAttribute);
}
}
public void visitAnnotationDefaultAttribute(Clazz clazz, Method method, AnnotationDefaultAttribute annotationDefaultAttribute)
{
- annotationDefaultAttribute.accept(clazz, method, attributeVisitor);
+ attributeVisitor.visitAnnotationDefaultAttribute(clazz, method, annotationDefaultAttribute);
}
}
diff --git a/src/proguard/classfile/attribute/visitor/ParameterInfoVisitor.java b/src/proguard/classfile/attribute/visitor/ParameterInfoVisitor.java
new file mode 100644
index 0000000..9f91c5b
--- /dev/null
+++ b/src/proguard/classfile/attribute/visitor/ParameterInfoVisitor.java
@@ -0,0 +1,37 @@
+/*
+ * ProGuard -- shrinking, optimization, obfuscation, and preverification
+ * of Java bytecode.
+ *
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+package proguard.classfile.attribute.visitor;
+
+import proguard.classfile.*;
+import proguard.classfile.attribute.ParameterInfo;
+
+/**
+ * This interface specifies the method for a visitor of
+ * <code>ParameterInfo</code> objects. Note that there is only a single
+ * implementation of <code>ParameterInfo</code>, such that this interface
+ * is not strictly necessary as a visitor.
+ *
+ * @author Eric Lafortune
+ */
+public interface ParameterInfoVisitor
+{
+ public void visitParameterInfo(Clazz clazz, Method method, int parameterIndex, ParameterInfo parameterInfo);
+}
diff --git a/src/proguard/classfile/attribute/visitor/RequiredAttributeFilter.java b/src/proguard/classfile/attribute/visitor/RequiredAttributeFilter.java
index 58e4e40..176846d 100644
--- a/src/proguard/classfile/attribute/visitor/RequiredAttributeFilter.java
+++ b/src/proguard/classfile/attribute/visitor/RequiredAttributeFilter.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
@@ -77,7 +77,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- unknownAttribute.accept(clazz, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitUnknownAttribute(clazz, unknownAttribute);
}
}
@@ -86,7 +86,7 @@ implements AttributeVisitor
{
if (requiredAttributeVisitor != null)
{
- bootstrapMethodsAttribute.accept(clazz, requiredAttributeVisitor);
+ requiredAttributeVisitor.visitBootstrapMethodsAttribute(clazz, bootstrapMethodsAttribute);
}
}
@@ -95,7 +95,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- sourceFileAttribute.accept(clazz, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitSourceFileAttribute(clazz, sourceFileAttribute);
}
}
@@ -104,7 +104,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- sourceDirAttribute.accept(clazz, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitSourceDirAttribute(clazz, sourceDirAttribute);
}
}
@@ -113,7 +113,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- innerClassesAttribute.accept(clazz, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitInnerClassesAttribute(clazz, innerClassesAttribute);
}
}
@@ -122,7 +122,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- enclosingMethodAttribute.accept(clazz, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitEnclosingMethodAttribute(clazz, enclosingMethodAttribute);
}
}
@@ -131,7 +131,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- deprecatedAttribute.accept(clazz, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitDeprecatedAttribute(clazz, deprecatedAttribute);
}
}
@@ -140,7 +140,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- deprecatedAttribute.accept(clazz, field, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitDeprecatedAttribute(clazz, field, deprecatedAttribute);
}
}
@@ -149,7 +149,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- deprecatedAttribute.accept(clazz, method, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitDeprecatedAttribute(clazz, method, deprecatedAttribute);
}
}
@@ -158,7 +158,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- syntheticAttribute.accept(clazz, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitSyntheticAttribute(clazz, syntheticAttribute);
}
}
@@ -167,7 +167,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- syntheticAttribute.accept(clazz, field, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitSyntheticAttribute(clazz, field, syntheticAttribute);
}
}
@@ -176,7 +176,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- syntheticAttribute.accept(clazz, method, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitSyntheticAttribute(clazz, method, syntheticAttribute);
}
}
@@ -185,7 +185,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- signatureAttribute.accept(clazz, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitSignatureAttribute(clazz, signatureAttribute);
}
}
@@ -194,7 +194,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- signatureAttribute.accept(clazz, field, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitSignatureAttribute(clazz, field, signatureAttribute);
}
}
@@ -203,7 +203,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- signatureAttribute.accept(clazz, method, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitSignatureAttribute(clazz, method, signatureAttribute);
}
}
@@ -212,7 +212,16 @@ implements AttributeVisitor
{
if (requiredAttributeVisitor != null)
{
- constantValueAttribute.accept(clazz, field, requiredAttributeVisitor);
+ requiredAttributeVisitor.visitConstantValueAttribute(clazz, field, constantValueAttribute);
+ }
+ }
+
+
+ public void visitMethodParametersAttribute(Clazz clazz, Method method, MethodParametersAttribute exceptionsAttribute)
+ {
+ if (optionalAttributeVisitor != null)
+ {
+ optionalAttributeVisitor.visitMethodParametersAttribute(clazz, method, exceptionsAttribute);
}
}
@@ -221,7 +230,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- exceptionsAttribute.accept(clazz, method, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitExceptionsAttribute(clazz, method, exceptionsAttribute);
}
}
@@ -230,7 +239,7 @@ implements AttributeVisitor
{
if (requiredAttributeVisitor != null)
{
- codeAttribute.accept(clazz, method, requiredAttributeVisitor);
+ requiredAttributeVisitor.visitCodeAttribute(clazz, method, codeAttribute);
}
}
@@ -239,7 +248,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- stackMapAttribute.accept(clazz, method, codeAttribute, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitStackMapAttribute(clazz, method, codeAttribute, stackMapAttribute);
}
}
@@ -248,7 +257,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- stackMapTableAttribute.accept(clazz, method, codeAttribute, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitStackMapTableAttribute(clazz, method, codeAttribute, stackMapTableAttribute);
}
}
@@ -257,7 +266,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- lineNumberTableAttribute.accept(clazz, method, codeAttribute, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitLineNumberTableAttribute(clazz, method, codeAttribute, lineNumberTableAttribute);
}
}
@@ -266,7 +275,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- localVariableTableAttribute.accept(clazz, method, codeAttribute, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitLocalVariableTableAttribute(clazz, method, codeAttribute, localVariableTableAttribute);
}
}
@@ -275,7 +284,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- localVariableTypeTableAttribute.accept(clazz, method, codeAttribute, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitLocalVariableTypeTableAttribute(clazz, method, codeAttribute, localVariableTypeTableAttribute);
}
}
@@ -284,7 +293,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- runtimeVisibleAnnotationsAttribute.accept(clazz, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, runtimeVisibleAnnotationsAttribute);
}
}
@@ -293,7 +302,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- runtimeVisibleAnnotationsAttribute.accept(clazz, field, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, field, runtimeVisibleAnnotationsAttribute);
}
}
@@ -302,7 +311,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- runtimeVisibleAnnotationsAttribute.accept(clazz, method, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitRuntimeVisibleAnnotationsAttribute(clazz, method, runtimeVisibleAnnotationsAttribute);
}
}
@@ -311,7 +320,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- runtimeInvisibleAnnotationsAttribute.accept(clazz, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, runtimeInvisibleAnnotationsAttribute);
}
}
@@ -320,7 +329,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- runtimeInvisibleAnnotationsAttribute.accept(clazz, field, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, field, runtimeInvisibleAnnotationsAttribute);
}
}
@@ -329,7 +338,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- runtimeInvisibleAnnotationsAttribute.accept(clazz, method, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitRuntimeInvisibleAnnotationsAttribute(clazz, method, runtimeInvisibleAnnotationsAttribute);
}
}
@@ -338,7 +347,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- runtimeVisibleParameterAnnotationsAttribute.accept(clazz, method, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitRuntimeVisibleParameterAnnotationsAttribute(clazz, method, runtimeVisibleParameterAnnotationsAttribute);
}
}
@@ -347,7 +356,79 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- runtimeInvisibleParameterAnnotationsAttribute.accept(clazz, method, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitRuntimeInvisibleParameterAnnotationsAttribute(clazz, method, runtimeInvisibleParameterAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
+ {
+ if (optionalAttributeVisitor != null)
+ {
+ optionalAttributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, runtimeVisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
+ {
+ if (optionalAttributeVisitor != null)
+ {
+ optionalAttributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, field, runtimeVisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
+ {
+ if (optionalAttributeVisitor != null)
+ {
+ optionalAttributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, runtimeVisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeVisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeVisibleTypeAnnotationsAttribute runtimeVisibleTypeAnnotationsAttribute)
+ {
+ if (optionalAttributeVisitor != null)
+ {
+ optionalAttributeVisitor.visitRuntimeVisibleTypeAnnotationsAttribute(clazz, method, codeAttribute, runtimeVisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
+ {
+ if (optionalAttributeVisitor != null)
+ {
+ optionalAttributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, runtimeInvisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Field field, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
+ {
+ if (optionalAttributeVisitor != null)
+ {
+ optionalAttributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, field, runtimeInvisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
+ {
+ if (optionalAttributeVisitor != null)
+ {
+ optionalAttributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, runtimeInvisibleTypeAnnotationsAttribute);
+ }
+ }
+
+
+ public void visitRuntimeInvisibleTypeAnnotationsAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute, RuntimeInvisibleTypeAnnotationsAttribute runtimeInvisibleTypeAnnotationsAttribute)
+ {
+ if (optionalAttributeVisitor != null)
+ {
+ optionalAttributeVisitor.visitRuntimeInvisibleTypeAnnotationsAttribute(clazz, method, codeAttribute, runtimeInvisibleTypeAnnotationsAttribute);
}
}
@@ -356,7 +437,7 @@ implements AttributeVisitor
{
if (optionalAttributeVisitor != null)
{
- annotationDefaultAttribute.accept(clazz, method, optionalAttributeVisitor);
+ optionalAttributeVisitor.visitAnnotationDefaultAttribute(clazz, method, annotationDefaultAttribute);
}
}
}
diff --git a/src/proguard/classfile/attribute/visitor/StackSizeComputer.java b/src/proguard/classfile/attribute/visitor/StackSizeComputer.java
index b5e02e2..d5cd99d 100644
--- a/src/proguard/classfile/attribute/visitor/StackSizeComputer.java
+++ b/src/proguard/classfile/attribute/visitor/StackSizeComputer.java
@@ -2,7 +2,7 @@
* ProGuard -- shrinking, optimization, obfuscation, and preverification
* of Java bytecode.
*
- * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu)
+ * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu)
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
@@ -21,11 +21,11 @@
package proguard.classfile.attribute.visitor;
import proguard.classfile.*;
-import proguard.classfile.visitor.ClassPrinter;
import proguard.classfile.attribute.*;
import proguard.classfile.instruction.*;
import proguard.classfile.instruction.visitor.InstructionVisitor;
import proguard.classfile.util.SimplifiedVisitor;
+import proguard.classfile.visitor.ClassPrinter;
import java.util.Arrays;