| Package | Description |
|---|---|
| proguard |
This package contains the main ProGuard application.
|
| proguard.backport | |
| proguard.classfile.attribute.annotation.visitor |
This package contains visitors for annotation attributes and their components.
|
| proguard.classfile.attribute.module.visitor |
This package contains visitors for module attributes and their components.
|
| proguard.classfile.attribute.visitor |
This package contains visitors for attributes and their components.
|
| proguard.classfile.constant.visitor |
This package contains visitors for class constants.
|
| proguard.classfile.editor |
This package contains visitors to edit byte code.
|
| proguard.classfile.instruction.visitor |
This package contains visitors for instructions.
|
| proguard.classfile.io |
This package contains classes for reading and writing class files.
|
| proguard.classfile.util |
This package contains utility classes for processing class files.
|
| proguard.classfile.visitor |
This package contains interfaces and classes for processing class files from
the
package using
the visitor pattern. |
| proguard.configuration | |
| proguard.evaluation | |
| proguard.io |
This package contains classes to read and write files, optionally wrapped in
jars, wars, ears, zips, directories,...
|
| proguard.obfuscate |
This package contains classes to perform obfuscation of class files.
|
| proguard.optimize |
This package contains visitors that assist with various optimizations of byte
code.
|
| proguard.optimize.evaluation |
This package contains visitors that perform partial evaluation and subsequent
optimizations on byte code.
|
| proguard.optimize.gson |
This package contains classes for optimizing usages of the Gson library for serializing and deserialing Json.
|
| proguard.optimize.info |
This package contains classes to collect additional information about classes
and class members, which can then be used for optimization.
|
| proguard.optimize.peephole |
This package contains visitors that perform various peephole optimizations.
|
| proguard.preverify | |
| proguard.shrink |
This package contains classes to perform shrinking of class files.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ClassMemberChecker
This class checks if the user has specified non-existent class members.
|
class |
DescriptorKeepChecker
This class checks whether classes referenced by class members that are
marked to be kept are marked to be kept too.
|
class |
FullyQualifiedClassNameChecker
This class checks if the user has forgotten to fully qualify any classes
in the configuration.
|
class |
GetAnnotationChecker
This constant visitor checks whether visited method references try to
access annotations.
|
class |
GetEnclosingClassChecker
This constant visitor checks whether visited method references try to
access enclosing classes.
|
class |
GetEnclosingMethodChecker
This constant visitor checks whether visited method references try to
access enclosing methods.
|
class |
GetSignatureChecker
This constant visitor checks whether visited method references try to
access signatures.
|
| Modifier and Type | Class and Description |
|---|---|
class |
DefaultInterfaceMethodConverter
This ClassVisitor moves all default interface methods in the visited
interfaces to concrete implementations.
|
class |
JSR310Converter
This ClassVisitor will replace any occurrence of java.time.** related methods / types
that have been introduced in Java 8 to the threetenbp library.
|
class |
LambdaExpressionCollector
This ClassVisitor collects all lambda expressions that are defined in
a visited class.
|
class |
LambdaExpressionConverter
This ClassVisitor converts all lambda expressions in the visited
classes to anonymous inner classes.
|
class |
StaticInterfaceMethodConverter
This ClassVisitor moves all static interface methods in the visited
interfaces to a separate util class and updates all invocations in
the program class pool.
|
class |
StreamSupportConverter
This ClassVisitor will replace any occurrence of stream related methods / types
that have been introduced in Java 8 to the streamsupport library.
|
class |
StringConcatenationConverter
This InstructionVisitor converts all indy String Concatenations in the visited
classes to StringBuilder-append chains.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AllAnnotationVisitor
This AttributeVisitor lets a given AnnotationVisitor visit all Annotation
objects of the attributes it visits.
|
class |
AllElementValueVisitor
This AttributeVisitor and AnnotationVisitor lets a given ElementValueVisitor
visit all ElementValue objects of the attributes or annotations that it
visits.
|
class |
AnnotationToAnnotatedClassVisitor
This AnnotationVisitor delegates all visits to a given ClassVisitor.
|
class |
AnnotationToAnnotatedMemberVisitor
This AnnotationVisitor delegates all visits to a given MemberVisitor.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AllExportsInfoVisitor
This AttributeVisitor lets a given ExportsInfoVisitor visit all
ExportsInfo objects of the ModuleAttribute objects it visits.
|
class |
AllOpensInfoVisitor
This AttributeVisitor lets a given OpensInfoVisitor visit all
OpensInfo objects of the ModuleAttribute objects it visits.
|
class |
AllProvidesInfoVisitor
This AttributeVisitor lets a given ProvidesInfoVisitor visit all
ProvidesInfo objects of the ModuleAttribute objects it visits.
|
class |
AllRequiresInfoVisitor
This AttributeVisitor lets a given RequiresInfoVisitor visit all
RequiresInfo objects of the ModuleAttribute objects it visits.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AllAttributeVisitor
This ClassVisitor, MemberVisitor, and AttributeVisitor lets a given
AttributeVisitor visit all Attribute objects of the program classes,
program class members, or code attributes, respectively, that it visits.
|
class |
AllBootstrapMethodInfoVisitor
This AttributeVisitor lets a given BootstrapMethodInfoVisitor visit all
bootstrap method objects of the BootstrapMethodsAttribute objects it visits.
|
class |
AllExceptionInfoVisitor
This AttributeVisitor lets a given ExceptionInfoVisitor visit all exceptions
objects of the CodeAttribute objects it visits.
|
class |
AllInnerClassesInfoVisitor
This AttributeVisitor lets a given InnerClassesInfoVisitor visit all
InnerClassessInfo objects of the InnerClassesAttribute objects it visits.
|
class |
AllLineNumberInfoVisitor
This AttributeVisitor lets a given LineNumberInfoVisitor visit all line numbers
of the LineNumberTableAttribute objects it visits.
|
class |
AttributeCounter
This AttributeVisitor counts the number of attributes that have been visited.
|
class |
AttributeToClassVisitor
This AttributeVisitor delegates to a given ClassVisitor.
|
class |
InstructionToAttributeVisitor
This InstructionVisitor delegates to a given AttributeVisitor.
|
class |
StackSizeComputer
This AttributeVisitor computes the stack sizes at all instruction offsets
of the code attributes that it visits.
|
| Modifier and Type | Class and Description |
|---|---|
class |
BootstrapMethodHandleTraveler
This ConstantVisitor and BootstrapMethodInfoVisitor travels from any invoke
dynamic constants or bootstrap method info entries that it visits to their
bootstrap method handle constants, and applies a given constant visitor.
|
class |
ConstantCounter
This ConstantVisitor counts the number of constants that have been visited.
|
class |
ConstantTagFilter
This
ConstantVisitor delegates its visits to one or more
specified types of constants. |
class |
ExceptClassConstantFilter
This
ConstantVisitor delegates its visits to class constants
to another given ConstantVisitor, except for one given class. |
class |
MethodrefTraveler
This ConstantVisitor travels from any method handle constants that it visits
to their methodref constants, and applies a given constant visitor.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AnnotationAdder
This AnnotationVisitor adds all annotations that it visits to the given
target annotation element value, target annotation attribute, or target
parameter annotation attribute.
|
class |
AttributeAdder
This AttributeVisitor adds all attributes that it visits to the given
target class, class member, or attribute.
|
class |
AttributeSorter
This ClassVisitor sorts the attributes of the classes that it visits.
|
class |
BootstrapMethodRemapper
This ConstantVisitor remaps all possible indices of bootstrap methods
of the constants that it visits, based on a given index map.
|
class |
BootstrapMethodsAttributeShrinker
This ClassVisitor removes all unused entries from the bootstrap method attribute.
|
class |
BridgeMethodFixer
This MemberVisitor fixes all inappropriate bridge access flags of the
program methods that it visits, checking whether the methods to which they
bridge have the same name.
|
class |
ClassElementSorter
This ClassVisitor sorts the various elements of the classes that it visits:
interfaces, constants, fields, methods, and attributes.
|
class |
ClassReferenceFixer
This ClassVisitor fixes references of constant pool entries, fields,
methods, and attributes to classes whose names have changed.
|
class |
CodeAttributeComposer
This AttributeVisitor accumulates instructions and exceptions, and then
copies them into code attributes that it visits.
|
class |
CodeAttributeEditor
This AttributeVisitor accumulates specified changes to code, and then applies
these accumulated changes to the code attributes that it visits.
|
class |
CodeAttributeEditorResetter
This AttributeVisitor resets it CodeAttributeEditor whenever it visits a
code attribute.
|
class |
CompactCodeAttributeComposer
This AttributeVisitor accumulates instructions and exceptions, and then
copies them into code attributes that it visits.
|
class |
ConstantPoolRemapper
This ClassVisitor remaps all possible references to constant pool entries
of the classes that it visits, based on a given index map.
|
class |
ConstantPoolShrinker
This ClassVisitor removes all unused entries from the constant pool.
|
class |
ConstantPoolSorter
This ClassVisitor sorts the constant pool entries of the program classes
that it visits.
|
class |
ExceptionAdder
This ConstantVisitor adds all class constants that it visits to the given
target exceptions attribute.
|
class |
InnerClassesAccessFixer
This InnerClassesInfoVisitor fixes the inner class access flags of the
inner classes information that it visits.
|
class |
InstructionAdder
This InstructionVisitor adds all instructions that it visits to the given
target code attribute.
|
class |
InstructionWriter
This InstructionVisitor writes out the instructions that it visits,
collecting instructions that have to be widened.
|
class |
InterfaceAdder
This ConstantVisitor adds all interfaces that it visits to the given
target class.
|
class |
InterfaceDeleter
This ClassVisitor removes specified interfaces from the classes and class
signatures that it visits.
|
class |
InterfaceSorter
This ClassVisitor sorts the interfaces of the program classes that it visits.
|
class |
LineNumberInfoAdder
This AttributeVisitor adds the line numbers of all line number attributes
that it visits to the given target line number attribute.
|
class |
LineNumberTableAttributeTrimmer
This AttributeVisitor trims the line number table attributes that it visits.
|
class |
MemberAdder
This MemberVisitor copies all class members that it visits to the given
target class.
|
class |
MemberReferenceFixer
This ClassVisitor fixes constant pool field and method references to fields
and methods whose names or descriptors have changed.
|
class |
MemberRemover
This visitor removes all members it visits in a ProgramClass.
|
class |
MethodInvocationFixer
This AttributeVisitor fixes all inappropriate special/virtual/static/interface
invocations of the code attributes that it visits.
|
class |
NameAndTypeShrinker
This ClassVisitor removes NameAndType constant pool entries that are not
used.
|
class |
NamedAttributeDeleter
This ClassVisitor deletes attributes with a given name in the program
classes, fields, methods, or code attributes that it visits.
|
class |
NestMemberAdder
This ConstantVisitor and ClassVisitor adds the class constants or the
classes that it visits to the given target nest member attribute.
|
class |
SimplifiedClassEditor
This editor allows to build and/or edit classes (ProgramClass instances).
|
class |
StackSizeUpdater
This AttributeVisitor computes and updates the maximum stack size of the
code attributes that it visits.
|
class |
TargetInfoCopier
This TargetInfoVisitor copies the target info instances that it visits to
the given type annotation (each time overwriting any previous target info).
|
class |
TypeAnnotationAdder
This TypeAnnotationVisitor adds all type annotations that it visits to the given
target annotation element value, target annotation attribute, or target
parameter annotation attribute.
|
class |
Utf8Shrinker
This ClassVisitor removes UTF-8 constant pool entries that are not used.
|
class |
VariableCleaner
This AttributeVisitor cleans up variable tables in all code attributes that
it visits.
|
class |
VariableEditor
This AttributeVisitor accumulates specified changes to local variables, and
then applies these accumulated changes to the code attributes that it visits.
|
class |
VariableRemapper
This AttributeVisitor remaps variable indexes in all attributes that it
visits, based on a given index map.
|
class |
VariableSizeUpdater
This AttributeVisitor computes and updates the maximum local variable frame
size of the code attributes that it visits.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AllInstructionVisitor
This AttributeVisitor lets a given InstructionVisitor visit all Instruction
objects of the CodeAttribute objects it visits.
|
class |
InstructionConstantVisitor
This AttributeVisitor lets a given ConstantVisitor visit all constants
of the instructions it visits.
|
class |
InstructionCounter
This InstructionVisitor counts the number of instructions that has been visited.
|
| Modifier and Type | Class and Description |
|---|---|
class |
LibraryClassReader
This ClassVisitor fills out the LibraryClass objects that it visits with data
from the given DataInput object.
|
class |
ProgramClassReader
This ClassVisitor fills out the ProgramClass objects that it visits with data
from the given DataInput object.
|
class |
ProgramClassWriter
This ClassVisitor writes out the ProgramClass objects that it visits to the
given DataOutput object.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ArrayInitializationReplacer
This ClassVisitor replaces array initialization instructions with optimized
primitive array constants.
|
class |
ClassReferenceInitializer
This ClassVisitor initializes the references of all classes that
it visits.
|
class |
ClassSuperHierarchyInitializer
This ClassVisitor initializes the superclass hierarchy of all classes that
it visits.
|
class |
DynamicClassReferenceInitializer
This InstructionVisitor initializes any constant
Class.forName or
.class references of all classes it visits. |
class |
DynamicMemberReferenceInitializer
This AttributeVisitor initializes any constant class member references of all
code that it visits.
|
class |
EnumFieldReferenceInitializer
This ElementValueVisitor initializes the field references of the
EnumConstantElementValue instances that it visits.
|
class |
InstructionSequenceMatcher
This InstructionVisitor checks whether a given pattern instruction sequence
occurs in the instructions that are visited.
|
class |
MemberFinder
This utility class provides methods to find class members in a given class
or in its hierarchy.
|
class |
MethodLinker
This ClassVisitor links all corresponding non-private, non-static,
non-initializer methods in the class hierarchies of all visited classes.
|
class |
NestHostFinder
This utility class can find the nest host class names of given classes.
|
class |
PrimitiveArrayConstantReplacer
This ClassVisitor replaces all PrimitiveArray constants by Java bytecode
compliant array store instructions.
|
class |
StringReferenceInitializer
This ConstantVisitor initializes any class references of all string constants
it visits.
|
class |
StringSharer
This ClassVisitor shares strings in the class files that it visits.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ClassCleaner
This
ClassVisitor removes all visitor information of the
classes it visits. |
class |
ClassCollector
This
ClassVisitor collects the classes that it visits in the
given collection. |
class |
ClassPoolFiller
This ClassVisitor collects all the classes it visits in a given
class pool.
|
class |
ClassPoolRemover
This ClassVisitor removes all the classes it visits from a given
class pool.
|
class |
ClassPrinter
This
ClassVisitor prints out the complete internal
structure of the classes it visits. |
class |
ConstructorMethodFilter
This MemberVisitor delegates its visits to one of three delegates, depending on whether the visited method is:
- a constructor
- a constructor that calls a super constructor
- or another method.
|
class |
DotClassClassVisitor
This InstructionVisitor lets a given
ClassVisitor visit all
classes involved in any .class constructs that it visits. |
class |
DynamicReturnedClassVisitor
This ConstantVisitor lets a given ClassVisitor visit all the referenced
classes that are returned by the dynamic constants and invoke dynamic
constants that it visits.
|
class |
ImplementedClassConstantFilter
This
ConstantVisitor delegates its visits to class constants
to another given ConstantVisitor, except for classes that
extend or implement a given class. |
class |
ImplementingClassConstantFilter
This
ConstantVisitor delegates its visits to class constants
to another given ConstantVisitor, except for classes that
are extended or implemented by a given class. |
class |
MemberCollector
This MemberVisitor collects dot-separated classname.membername.descriptor
strings of the class members that it visits.
|
class |
MemberDescriptorReferencedClassVisitor
This MemberVisitor lets a given ClassVisitor visit all the classes
referenced by the descriptors of the class members that it visits.
|
class |
MethodCollector
This
MemberVisitor collects the methods that it visits in the
given collection. |
class |
MethodImplementationFilter
This
MemberVisitor delegates its visits to methods to
another given MemberVisitor, but only when the visited
method may have implementations. |
class |
MethodImplementationTraveler
This
MemberVisitor lets a given MemberVisitor
travel to all concrete and abstract implementations of the visited methods
in their class hierarchies. |
class |
MultiConstantVisitor
This ConstantVisitor delegates all visits to each ConstantVisitor in a given list.
|
class |
ReferencedClassVisitor
This ClassVisitor, MemberVisitor, ConstantVisitor, AttributeVisitor, etc.
|
class |
ReferencedMemberVisitor
This ConstantVisitor and ElementValueVisitor lets a given MemberVisitor
visit all the referenced class members of the elements that it visits.
|
class |
SignatureAttributeReferencedClassVisitor
This AttributeVisitor lets a given ClassVisitor visit all the
classes referenced by the type descriptors of the signatures that it visits.
|
class |
VisitorInfoSetter
This visitor sets a fixed info object on all the visitor accepters
that it visits.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ConfigurationLoggingAdder
This class can add configuration debug logging code to all code that
relies on reflection.
|
class |
ConfigurationLoggingInstructionSequenceReplacer
This InstructionSequencesReplacer appends logging instructions to all
instructions calling reflection methods.
|
| Modifier and Type | Class and Description |
|---|---|
class |
BasicInvocationUnit
This InvocationUnit sets up the variables for entering a method,
and it updates the stack for the invocation of a class member,
using simple values.
|
class |
ClassConstantValueFactory
This class creates java.lang.Class ReferenceValue instances that correspond
to specified constant pool entries.
|
class |
ConstantValueFactory
This class creates Value instance that correspond to specified constant pool
entries.
|
class |
SimplifiedInvocationUnit
This InvocationUnit sets up the variables for entering a method,
and it updates the stack for the invocation of a class member,
using simple values.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ClassMapDataEntryWriter
This DataEntryWriter writes a class mapping to the given data entry, used
for debugging of the configuration.
|
class |
DataEntryClassWriter
This ClassVisitor writes out the ProgramClass objects that it visits to the
given DataEntry, modified to have the correct name.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AttributeShrinker
This ClassVisitor removes attributes that are not marked as being used or
required.
|
class |
AttributeUsageMarker
This AttributeVisitor marks all attributes that it visits.
|
class |
ClassObfuscator
This
ClassVisitor comes up with obfuscated names for the
classes it visits, and for their class members. |
class |
ClassRenamer
This
ClassVisitor renames the class names and class member
names of the classes it visits, using names previously determined by the
obfuscator. |
class |
MapCleaner
This ClassVisitor clears a given map whenever it visits a class.
|
class |
MappingPrinter
This ClassVisitor prints out the renamed classes and class members with
their old names and new names.
|
class |
MemberNameCollector
This MemberVisitor collects all new (obfuscation) names of the members
that it visits.
|
class |
MemberObfuscator
This MemberVisitor obfuscates all class members that it visits.
|
class |
ParameterNameMarker
This AttributeVisitor trims and marks all local variable (type) table
attributes that it visits.
|
class |
RenamedFlagSetter
This ClassVisitor sets the ACC_RENAMED flag for classes or class members
that have been renamed.
|
class |
SourceFileRenamer
This ClassVisitor changes the name stored in the source file attributes
and source dir attributes of the classes that it visits, if the
attributes are present.
|
| Modifier and Type | Class and Description |
|---|---|
class |
BootstrapMethodArgumentShrinker
This BootstrapMethodInfoVisitor removes unused constant arguments from
bootstrap method entries that it visits.
|
class |
ConstantMemberFilter
This
MemberVisitor delegates its visits to program class members
to another given MemberVisitor, but only when the visited
class member has been marked as a constant. |
class |
ConstantParameterFilter
This
MemberVisitor delegates its visits to program methods
to another given MemberVisitor, for each method parameter
that has been marked as constant. |
class |
DuplicateInitializerFixer
This MemberVisitor adds an additional parameter to the duplicate
initialization methods that it visits.
|
class |
DuplicateInitializerInvocationFixer
This AttributeVisitor adds an additional integer parameter to the tweaked
initialization method invocations that it visits.
|
class |
KeepMarker
This
ClassVisitor, MemberVisitor and
AttributeVisitor marks classes, class members and
code attributes it visits. |
class |
MemberDescriptorSpecializer
This MemberVisitor specializes parameters in the descriptors of the
methods that it visits.
|
class |
MethodDescriptorShrinker
This MemberVisitor removes unused parameters in the descriptors of the
methods that it visits.
|
class |
MethodStaticizer
This MemberVisitor makes all methods that it visits static, if their 'this'
parameters are unused.
|
class |
ParameterShrinker
This AttributeVisitor removes unused parameters from the code of the methods
that it visits.
|
class |
TailRecursionSimplifier
This MemberVisitor simplifies tail recursion calls in all methods that it
visits.
|
class |
WriteOnlyFieldFilter
This
MemberVisitor delegates its visits to program fields to
other given MemberVisitor instances, but only when the visited
field has been marked as write-only. |
| Modifier and Type | Class and Description |
|---|---|
class |
EvaluationShrinker
This AttributeVisitor shrinks the code attributes that it visits, based
on partial evaluation.
|
class |
EvaluationSimplifier
This AttributeVisitor simplifies the code attributes that it visits, based
on partial evaluation.
|
class |
InitializationFinder
This AttributeVisitor links 'new' instructions and their corresponding
initializers in the CodeAttribute objects that it visits.
|
class |
InstructionUsageMarker
This AttributeVisitor marks necessary instructions in the code attributes
that it visits, based on partial evaluation.
|
class |
LivenessAnalyzer
This AttributeVisitor analyzes the liveness of the variables in the code
attributes that it visits, based on partial evaluation.
|
class |
LoadingInvocationUnit
This InvocationUnit loads parameter values and return values that were
previously stored with the methods that are invoked.
|
class |
ParameterTracingInvocationUnit
This InvocationUnit tags reference values like
ReferenceTracingInvocationUnit, but adds detail to return values
from invoked methods. |
class |
PartialEvaluator
This AttributeVisitor performs partial evaluation on the code attributes
that it visits.
|
class |
ReferenceTracingInvocationUnit
This InvocationUnit tags reference values of retrieved fields, passed method
parameters, method return values, and caught exceptions, so they can be
traced throughout the execution of a method.
|
class |
ReferenceTracingValueFactory
This ValueFactory tags newly created reference values so they can be traced
throughout the execution of a method.
|
class |
SimpleEnumArrayPropagator
This ClassVisitor propagates the value of the $VALUES field to the values()
method in the simple enum classes that it visits.
|
class |
SimpleEnumClassSimplifier
This ClassVisitor simplifies the classes that it visits to simple enums.
|
class |
SimpleEnumDescriptorSimplifier
This ClassVisitor simplifies the descriptors that contain simple enums in
the program classes that it visits.
|
class |
SimpleEnumUseChecker
This ClassVisitor marks enums that can't be simplified due to the way they
are used in the classes that it visits.
|
class |
SimpleEnumUseSimplifier
This AttributeVisitor simplifies the use of enums in the code attributes that
it visits.
|
class |
StoringInvocationUnit
This InvocationUnit stores parameter values and return values with the
methods that are invoked.
|
class |
VariableOptimizer
This AttributeVisitor optimizes variable allocation based on their the liveness,
in the code attributes that it visits.
|
| Modifier and Type | Class and Description |
|---|---|
class |
GsonBuilderInvocationFinder
This instructor visitor searches for invocations to GsonBuilder and keeps
track of which parameters of the GsonBuilder are being utilized in the code
in a GsonRuntimeSettings instance.
|
class |
GsonConstructorPatcher
Class visitor that patches the constructor of Gson so that the injected
optimized type adapter factory is registered at the right priority.
|
class |
GsonDeserializationInvocationFinder
This instruction visitor searches the code for invocations to any of the
deserialization methods of Gson (all the fromJson variants) and keeps
track of the domain classes that are involved in the deserialization.
|
class |
GsonDeserializationOptimizer
This visitor injects a fromJson$xxx() method into the classes that it visits
that deserializes its fields from Json.
|
class |
GsonDomainClassFinder
This class visitor determines whether a given domain class can be optimized
by the GSON optimizations and traverses both the class and field hierarchy
to look for further domain classes.
|
class |
GsonInstrumentationAdder
Instruction visitor that adds some instrumentation code to the Gson.toJson()
and Gson.fromJson() methods that prints out the type adapter cache.
|
class |
GsonSerializationInvocationFinder
This instruction visitor searches the code for invocations to any of the
serialization methods of Gson (all the toJson variants) and keeps
track of the domain classes that are involved in the serialization.
|
class |
GsonSerializationOptimizer
This visitor injects a toJson$xxx() method into the classes that it visits
that serializes its fields to Json.
|
class |
OptimizedJsonFieldCollector
This class and member visitor collects the classes and fields that can be
involved in Json (de)serialization and register their Java to Json field
name mapping in an OptimizedJsonInfo object
|
class |
OptimizedJsonFieldVisitor
This visitor searches the classes that it visits for fields that can be
involved in Json (de)serialization and passes them on to the given member
visitor.
|
class |
OptimizedJsonReaderImplInitializer
This code attribute visitor implements the static initializer of
_OptimizedJsonReaderImpl so that the data structure is initialized
with the correct mapping between Json field names and internal
indices.
|
class |
OptimizedJsonWriterImplInitializer
This code attribute visitor implements the static initializer of
_OptimizedJsonWriterImpl so that the data structure is initialized
with the correct mapping between internal indices and Json field names.
|
class |
OptimizedTypeAdapterFactoryInitializer
This visitor implements the getType() method of the injected
_OptimizedTypeAdapterFactory.
|
class |
OptimizedTypeAdapterInitializer
This class visitor transforms the template _OptimizedTypeAdapter into a full
implementation of a GSON TypeAdapter for a specific domain class.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AccessMethodMarker
This InstructionVisitor marks the types of class accesses and class member
accesses of the methods whose instructions it visits.
|
class |
BackwardBranchMarker
This InstructionVisitor marks all methods that branch backward in any of the
instructions that it visits.
|
class |
CatchExceptionMarker
This AttributeVisitor marks all methods that catch exceptions.
|
class |
DotClassMarker
This InstructionVisitor marks all classes that are used in a .class
construct by any of the instructions that it visits.
|
class |
DynamicInvocationMarker
This InstructionVisitor marks whether the methods whose instructions it
visits contain the invokedynamic instruction.
|
class |
EscapingClassMarker
This AttributeVisitor marks the classes that are escaping from the visited
code attributes.
|
class |
ExceptionInstructionChecker
This class can tell whether an instruction might throw exceptions.
|
class |
FieldOptimizationInfo
This class stores some optimization information that can be attached to
a field.
|
class |
InstanceofClassMarker
This InstructionVisitor marks all classes that are used in an 'instanceof'
test by any of the instructions that it visits.
|
class |
InstantiationClassMarker
This InstructionVisitor marks all classes that are instantiated by any of
the instructions that it visits.
|
class |
MethodInvocationMarker
This InstructionVisitor counts the number of times methods are invoked from
the instructions that are visited.
|
class |
NoEscapingParametersMethodMarker
This MemberVisitor marks all methods that it visits as not having any
escaping parameters (including 'this').
|
class |
NoExternalReturnValuesMethodMarker
This MemberVisitor marks all methods that it visits as not having any
return values that are external reference values (only parameters or new
instances).
|
class |
NoExternalSideEffectMethodMarker
This MemberVisitor marks all methods that it visits as not having any
external side effects.
|
class |
NonEmptyStackReturnMarker
This InstructionVisitor marks all methods that return with a non-empty stack
(other than the return value).
|
class |
NonPrivateMemberMarker
This ClassVisitor marks all class members that can not be made private in the
classes that it visits, and in the classes to which they refer.
|
class |
NoSideEffectClassMarker
This ClassVisitor marks all classes that it visits as not having any side
effects.
|
class |
NoSideEffectMethodMarker
This MemberVisitor marks all methods that it visits as not having any side
effects.
|
class |
OptimizationCodeAttributeFilter
This AttributeVisitor delegates calls for code attributes to another
AttributeVisitor, but only if they can be optimized.
|
class |
PackageVisibleMemberContainingClassMarker
This ClassVisitor marks all classes that contain package visible members.
|
class |
PackageVisibleMemberInvokingClassMarker
This ConstantVisitor marks all classes that refer to package visible classes
or class members.
|
class |
ParameterEscapedMarker
This ClassPoolVisitor marks the reference parameters that have escaped or
that are escaping, outside or inside their methods.
|
class |
ParameterEscapeMarker
This MemberVisitor, AttributeVisitor, and InstructionVisitor marks the
reference parameters that are escaping, that are modified, or that are
returned.
|
class |
ParameterUsageMarker
This MemberVisitor counts the parameters and marks the used parameters
of the methods that it visits.
|
class |
ProgramClassOptimizationInfoSetter
This ClassVisitor attaches a ProgramClassOptimizationInfo instance to every
class that is not being kept that it visits.
|
class |
ProgramFieldOptimizationInfo
This class stores some optimization information that can be attached to
a field.
|
class |
ProgramMemberOptimizationInfoSetter
This MemberVisitor attaches a ProgramFieldOptimizationInfo instance to every
field and a ProgramMethodOptimizationInfo instance to every method that is
not being kept that it visits.
|
class |
ReadWriteFieldMarker
This InstructionVisitor marks all fields that are write-only.
|
class |
ReferenceEscapeChecker
This AttributeVisitor can tell whether reference parameters and instances
are escaping, are modified, or are returned.
|
class |
SideEffectClassMarker
This ClassVisitor marks all classes that it visits as having side effects.
|
class |
SideEffectInstructionChecker
This class can tell whether an instruction has any side effects.
|
class |
SideEffectMethodMarker
This MemberVisitor and InstructionVisitor marks all methods and classes
that have side effects.
|
class |
SuperInvocationMarker
This InstructionVisitor marks all methods that invoke super methods (other
than initializers) from the instructions that it visits.
|
class |
SynchronizedBlockMethodMarker
This InstructionVisitor marks the existence of synchronized blocks
of the methods whose instructions it visits.
|
class |
UnusedParameterOptimizationInfoUpdater
This AttributeVisitor removes unused parameters from the optimization info
of the methods that it visits.
|
class |
VariableUsageMarker
This AttributeVisitor marks the local variables that are used in the code
attributes that it visits.
|
class |
WrapperClassMarker
This ClassVisitor marks all program classes that are a simple wrapper for a
single non-null instance of another class.
|
| Modifier and Type | Class and Description |
|---|---|
class |
BranchTargetFinder
This AttributeVisitor finds all instruction offsets, branch targets, and
exception targets in the CodeAttribute objects that it visits.
|
class |
ClassFinalizer
This
ClassVisitor makes the program classes that it visits
final, if possible. |
class |
ClassMerger
This ClassVisitor inlines the classes that it visits in a given target class,
whenever possible.
|
class |
GotoCommonCodeReplacer
This AttributeVisitor redirects unconditional branches so any common code
is shared, and the code preceding the branch can be removed, in the code
attributes that it visits.
|
class |
GotoGotoReplacer
This InstructionVisitor simplifies unconditional branches to other
unconditional branches.
|
class |
GotoReturnReplacer
This InstructionVisitor replaces unconditional branches to return instructions
by these same return instructions.
|
class |
HorizontalClassMerger
This ClassVisitor inlines siblings in the program classes that it visits,
whenever possible.
|
class |
InstructionSequenceReplacer
This InstructionVisitor replaces a given pattern instruction sequence by
another given replacement instruction sequence.
|
class |
LineNumberLinearizer
This ClassVisitor disambiguates line numbers, in the classes that it
visits.
|
class |
MemberPrivatizer
This MemberVisitor makes all class members that it visits private, unless
they have been marked by a NonPrivateMemberMarker.
|
class |
MethodFinalizer
This
MemberVisitor makes the program methods that it visits
final, if possible. |
class |
MethodInliner
This AttributeVisitor inlines short methods or methods that are only invoked
once, in the code attributes that it visits.
|
class |
NopRemover
This InstructionVisitor removes all nop instructions that it encounters.
|
class |
PeepholeOptimizer
This AttributeVisitor sets up and applies the peephole optimizations of its
instruction visitor.
|
class |
ReachableCodeMarker
This AttributeVisitor finds all instruction offsets, branch targets, and
exception targets in the CodeAttribute objects that it visits.
|
class |
RetargetedInnerClassAttributeRemover
This ClassVisitor removes InnerClasses and EnclosingMethod attributes in
classes that are retargeted or that refer to classes that are retargeted.
|
class |
TargetClassChanger
This ClassVisitor replaces references to classes and class members if the
classes have targets that are intended to replace them.
|
class |
UnreachableCodeRemover
This InstructionVisitor deletes blocks of code that can never be reached by
regular calls or branches.
|
class |
UnreachableExceptionRemover
This AttributeVisitor removes exception handlers that are unreachable in the
code attributes that it visits.
|
class |
VariableShrinker
This MemberVisitor removes unused local variables from the code of the methods
that it visits.
|
class |
VerticalClassMerger
This ClassVisitor inlines the direct subclasses into the program classes
that it visits, whenever possible.
|
class |
WrapperClassMerger
This ClassVisitor inlines the wrapper classes that it visits into their
wrapped classes, whenever possible.
|
class |
WrapperClassUseSimplifier
This AttributeVisitor simplifies the use of retargeted wrapper classes in
the code attributes that it visits.
|
| Modifier and Type | Class and Description |
|---|---|
class |
CodePreverifier
This class can preverify methods in program class pools, according to a given
specification.
|
class |
CodeSubroutineInliner
This AttributeVisitor inlines local subroutines (jsr/ret) in the code
attributes that it visits.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AnnotationUsageMarker
This AttributeVisitor recursively marks all necessary annotation information
in the attributes that it visits.
|
class |
ClassShrinker
This ClassVisitor removes constant pool entries, class members, and other
class elements that are not marked as being used.
|
class |
InnerUsageMarker
This AttributeVisitor recursively marks all necessary inner class information
in the attributes that it visits.
|
class |
InterfaceUsageMarker
This ClassVisitor recursively marks all interface
classes that are being used in the visited class.
|
class |
LocalVariableTypeUsageMarker
This AttributeVisitor recursively marks all information that points to used
classes, in the LocalVariableTable and LocalVariableTypeTable attributes that
it visits.
|
class |
NestUsageMarker
This AttributeVisitor marks all necessary nest host attributes and nest
members attributes that it visits.
|
class |
ShortestUsageMarker
This ClassVisitor and MemberVisitor recursively marks all classes
and class elements that are being used.
|
class |
ShortestUsagePrinter
This ClassVisitor and MemberVisitor prints out the reasons why
classes and class members have been marked as being used.
|
class |
UsagePrinter
This ClassVisitor prints out the classes and class members that have been
marked as being used (or not used).
|
Copyright © 2019. All rights reserved.