trait CachedBytecodeReaderAndBinding extends InstructionsDeserializer
Defines a method to parse an array of bytes (containing Java bytecode instructions) and
to return an array of org.opalj.br.instructions.Instructions.
The target array has the same size as the source array to make sure that branch offsets etc. point to the correct instruction.
This reader caches the instructions – primarily – to save memory once all class files are loaded.
- Alphabetic
- By Inheritance
- CachedBytecodeReaderAndBinding
- InstructionsDeserializer
- DeferredDynamicConstantResolution
- DeferredInvokedynamicResolution
- CodeBinding
- ConstantPoolBinding
- Constant_PoolReader
- Constant_PoolAbstractions
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- type CONSTANT_Class_info = cp.CONSTANT_Class_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- type CONSTANT_Double_info = cp.CONSTANT_Double_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- type CONSTANT_Dynamic_info = cp.CONSTANT_Dynamic_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- type CONSTANT_Fieldref_info = cp.CONSTANT_Fieldref_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- type CONSTANT_Float_info = cp.CONSTANT_Float_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- type CONSTANT_Integer_info = cp.CONSTANT_Integer_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- type CONSTANT_InterfaceMethodref_info = cp.CONSTANT_InterfaceMethodref_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- type CONSTANT_InvokeDynamic_info = cp.CONSTANT_InvokeDynamic_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- type CONSTANT_Long_info = cp.CONSTANT_Long_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- type CONSTANT_MethodHandle_info = cp.CONSTANT_MethodHandle_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- type CONSTANT_MethodType_info = cp.CONSTANT_MethodType_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- type CONSTANT_Methodref_info = cp.CONSTANT_Methodref_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- type CONSTANT_Module_info = cp.CONSTANT_Module_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- type CONSTANT_NameAndType_info = cp.CONSTANT_NameAndType_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- type CONSTANT_Package_info = cp.CONSTANT_Package_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- type CONSTANT_String_info = cp.CONSTANT_String_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- type CONSTANT_Utf8_info = cp.CONSTANT_Utf8_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader → Constant_PoolAbstractions
- abstract type ClassFile <: br.ClassFile
- Definition Classes
- ConstantPoolBinding → Constant_PoolAbstractions
- final type Constant_Pool = Array[Constant_Pool_Entry]
- Definition Classes
- Constant_PoolAbstractions
- type Constant_Pool_Entry = cp.Constant_Pool_Entry
- Definition Classes
- ConstantPoolBinding → Constant_PoolAbstractions
- final type Constant_Pool_Index = Int
- Definition Classes
- Constant_PoolAbstractions
- type DeferredActionsStore = Buffer[(ClassFile) => ClassFile] with Constant_Pool_Entry
A DeferredActionsStore stores all functions that need to perform post load actions.
A DeferredActionsStore stores all functions that need to perform post load actions.
One example is the resolution of references to attributes. (The constant pool is the only structure that is passed around and hence it is the only place where to store information/functions related to a specific class file).
- Definition Classes
- Constant_PoolAbstractions
- type Instructions = Array[Instruction]
- Definition Classes
- CodeBinding
Abstract Value Members
- abstract def cache: BytecodeInstructionsCache
Concrete Value Members
- def CONSTANT_Class_info(i: Int): CONSTANT_Class_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def CONSTANT_Double_info(d: Double): CONSTANT_Double_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def CONSTANT_Dynamic_info(bootstrap_method_attr_index: Constant_Pool_Index, name_and_type_index: Constant_Pool_Index): CONSTANT_Dynamic_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def CONSTANT_Fieldref_info(class_index: Constant_Pool_Index, name_and_type_index: Constant_Pool_Index): CONSTANT_Fieldref_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def CONSTANT_Float_info(f: Float): CONSTANT_Float_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def CONSTANT_Integer_info(i: Int): CONSTANT_Integer_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def CONSTANT_InterfaceMethodref_info(class_index: Constant_Pool_Index, name_and_type_index: Constant_Pool_Index): CONSTANT_InterfaceMethodref_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def CONSTANT_InvokeDynamic_info(bootstrap_method_attr_index: Constant_Pool_Index, name_and_type_index: Constant_Pool_Index): CONSTANT_InvokeDynamic_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def CONSTANT_Long_info(l: Long): CONSTANT_Long_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def CONSTANT_MethodHandle_info(reference_kind: Int, reference_index: Int): CONSTANT_MethodHandle_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def CONSTANT_MethodType_info(descriptor_index: Constant_Pool_Index): CONSTANT_MethodType_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def CONSTANT_Methodref_info(class_index: Constant_Pool_Index, name_and_type_index: Constant_Pool_Index): CONSTANT_Methodref_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def CONSTANT_Module_info(name_index: Constant_Pool_Index): CONSTANT_Module_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def CONSTANT_NameAndType_info(name_index: Constant_Pool_Index, descriptor_index: Constant_Pool_Index): CONSTANT_NameAndType_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def CONSTANT_Package_info(name_index: Constant_Pool_Index): CONSTANT_Package_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def CONSTANT_String_info(i: Int): CONSTANT_String_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def CONSTANT_Utf8_info(r: Array[Byte], s: String): CONSTANT_Utf8_info
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
- def Constant_Pool(in: DataInputStream): Constant_Pool
- Definition Classes
- Constant_PoolReader
- def Instructions(cp: Constant_Pool, ap_name_index: Constant_Pool_Index, ap_descriptor_index: Constant_Pool_Index, source: Array[Byte]): Instructions
Transforms an array of bytes into an array of org.opalj.br.instructions.Instructions.
Transforms an array of bytes into an array of org.opalj.br.instructions.Instructions.
- Definition Classes
- CachedBytecodeReaderAndBinding → InstructionsDeserializer
- def applyDeferredActions(cp: Constant_Pool, classFile: ClassFile): ClassFile
This method is called/needs to be called after the class file was completely loaded to perform class file specific transformations.
This method is called/needs to be called after the class file was completely loaded to perform class file specific transformations.
- Definition Classes
- Constant_PoolReader → Constant_PoolAbstractions
- implicit val constantPoolEntryType: ClassTag[cp.Constant_Pool_Entry]
- Definition Classes
- ConstantPoolBinding → Constant_PoolAbstractions
- implicit def cpIndexTocpEntry(index: Constant_Pool_Index)(implicit cp: Constant_Pool): Constant_Pool_Entry
- Definition Classes
- ConstantPoolBinding
- def registerDeferredAction(cp: Constant_Pool)(deferredAction: (ClassFile) => ClassFile): Unit
- Definition Classes
- Constant_PoolReader