Class DynamicMemberReferenceInitializer

java.lang.Object
proguard.classfile.util.DynamicMemberReferenceInitializer
All Implemented Interfaces:
AttributeVisitor, ConstantVisitor, InstructionVisitor, ClassVisitor, MemberVisitor

public class DynamicMemberReferenceInitializer extends Object implements ClassVisitor, AttributeVisitor, InstructionVisitor, ConstantVisitor, MemberVisitor
This AttributeVisitor initializes any constant class member references of all code that it visits. It currently handles invocations of Class#get[Declared]{Field,Constructor,Method} and Atomic{Integer,Long,Reference}FieldUpdater.newUpdater with constant string arguments. It lets the corresponding string constants refer to their class members in the program class pool or in the library class pool. It may create new string constants and update the code, in order to avoid clashes between identically named class members.

The class hierarchy and references must be initialized before using this visitor.

It's more efficient to use as a ClassVisitor than an InstructionVisitor.

See Also: