public class ParameterUsageMarker
extends java.lang.Object
implements proguard.classfile.visitor.MemberVisitor, proguard.classfile.attribute.visitor.AttributeVisitor, proguard.classfile.instruction.visitor.InstructionVisitor
| Constructor and Description |
|---|
ParameterUsageMarker()
Creates a new ParameterUsageMarker.
|
ParameterUsageMarker(boolean markThisParameter,
boolean markAllParameters)
Creates a new ParameterUsageMarker that optionally marks all parameters.
|
ParameterUsageMarker(boolean markThisParameter,
boolean markAllParameters,
boolean analyzeCode)
Creates a new ParameterUsageMarker that optionally marks all parameters.
|
| Modifier and Type | Method and Description |
|---|---|
static int |
getParameterSize(proguard.classfile.Method method)
Returns the total size of the parameters.
|
static long |
getUsedParameters(proguard.classfile.Method method)
Returns which parameters are being used.
|
static boolean |
hasUnusedParameters(proguard.classfile.Method method)
Returns whether the given method has any unused parameters.
|
static boolean |
isParameterUsed(proguard.classfile.Method method,
int variableIndex)
Returns whether the given parameter is being used.
|
static void |
markParameterUsed(proguard.classfile.Method method,
int variableIndex)
Marks the given parameter as being used.
|
void |
visitAnyAttribute(proguard.classfile.Clazz clazz,
proguard.classfile.attribute.Attribute attribute) |
void |
visitAnyInstruction(proguard.classfile.Clazz clazz,
proguard.classfile.Method method,
proguard.classfile.attribute.CodeAttribute codeAttribute,
int offset,
proguard.classfile.instruction.Instruction instruction) |
void |
visitCodeAttribute(proguard.classfile.Clazz clazz,
proguard.classfile.Method method,
proguard.classfile.attribute.CodeAttribute codeAttribute) |
void |
visitLibraryMethod(proguard.classfile.LibraryClass libraryClass,
proguard.classfile.LibraryMethod libraryMethod) |
void |
visitProgramMethod(proguard.classfile.ProgramClass programClass,
proguard.classfile.ProgramMethod programMethod) |
void |
visitVariableInstruction(proguard.classfile.Clazz clazz,
proguard.classfile.Method method,
proguard.classfile.attribute.CodeAttribute codeAttribute,
int offset,
proguard.classfile.instruction.VariableInstruction variableInstruction) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitvisitAnyMember, visitLibraryField, visitLibraryMember, visitProgramField, visitProgramMembervisitAnnotationDefaultAttribute, visitAnyAnnotationsAttribute, visitAnyParameterAnnotationsAttribute, visitAnyTypeAnnotationsAttribute, visitBootstrapMethodsAttribute, visitConstantValueAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitEnclosingMethodAttribute, visitExceptionsAttribute, visitInnerClassesAttribute, visitLineNumberTableAttribute, visitLocalVariableTableAttribute, visitLocalVariableTypeTableAttribute, visitMethodParametersAttribute, visitModuleAttribute, visitModuleMainClassAttribute, visitModulePackagesAttribute, visitNestHostAttribute, visitNestMembersAttribute, visitPermittedSubclassesAttribute, visitRecordAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSourceDebugExtensionAttribute, visitSourceDirAttribute, visitSourceFileAttribute, visitStackMapAttribute, visitStackMapTableAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitUnknownAttributepublic ParameterUsageMarker()
public ParameterUsageMarker(boolean markThisParameter,
boolean markAllParameters)
markThisParameter - specifies whether all 'this' parameters should
be marked as being used.markAllParameters - specifies whether all other parameters should
be marked as being used.public ParameterUsageMarker(boolean markThisParameter,
boolean markAllParameters,
boolean analyzeCode)
markThisParameter - specifies whether all 'this' parameters should
be marked as being used.markAllParameters - specifies whether all other parameters should
be marked as being used.analyzeCode - specifies whether the code of visited methods
should be analyzed for used parameters.public void visitProgramMethod(proguard.classfile.ProgramClass programClass,
proguard.classfile.ProgramMethod programMethod)
visitProgramMethod in interface proguard.classfile.visitor.MemberVisitorpublic void visitLibraryMethod(proguard.classfile.LibraryClass libraryClass,
proguard.classfile.LibraryMethod libraryMethod)
visitLibraryMethod in interface proguard.classfile.visitor.MemberVisitorpublic void visitAnyAttribute(proguard.classfile.Clazz clazz,
proguard.classfile.attribute.Attribute attribute)
visitAnyAttribute in interface proguard.classfile.attribute.visitor.AttributeVisitorpublic void visitCodeAttribute(proguard.classfile.Clazz clazz,
proguard.classfile.Method method,
proguard.classfile.attribute.CodeAttribute codeAttribute)
visitCodeAttribute in interface proguard.classfile.attribute.visitor.AttributeVisitorpublic void visitAnyInstruction(proguard.classfile.Clazz clazz,
proguard.classfile.Method method,
proguard.classfile.attribute.CodeAttribute codeAttribute,
int offset,
proguard.classfile.instruction.Instruction instruction)
visitAnyInstruction in interface proguard.classfile.instruction.visitor.InstructionVisitorpublic void visitVariableInstruction(proguard.classfile.Clazz clazz,
proguard.classfile.Method method,
proguard.classfile.attribute.CodeAttribute codeAttribute,
int offset,
proguard.classfile.instruction.VariableInstruction variableInstruction)
visitVariableInstruction in interface proguard.classfile.instruction.visitor.InstructionVisitorpublic static int getParameterSize(proguard.classfile.Method method)
public static void markParameterUsed(proguard.classfile.Method method,
int variableIndex)
public static boolean hasUnusedParameters(proguard.classfile.Method method)
public static boolean isParameterUsed(proguard.classfile.Method method,
int variableIndex)
public static long getUsedParameters(proguard.classfile.Method method)