diff options
author | Brian Carlstrom <bdc@google.com> | 2015-01-09 00:45:23 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-01-09 00:45:23 +0000 |
commit | 6af8f1004e0efe02a138286a34e833d1f3d227d7 (patch) | |
tree | 9ac962825d41c4fb8ad1ec0fc2e8b441b42d3869 /src/proguard/classfile/attribute/visitor | |
parent | 9961286c06c25cd03464d3e2b00bd9b9dedf96ba (diff) | |
parent | cd9e071098d0539dda3a4a5d3f45cfd8814de4ed (diff) | |
download | proguard-6af8f1004e0efe02a138286a34e833d1f3d227d7.tar.gz |
Merge "Upgrade Proguard to 5.1."
Diffstat (limited to 'src/proguard/classfile/attribute/visitor')
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; |