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
- DeferredInvokedynamicResolution
- CodeBinding
- ConstantPoolBinding
- Constant_PoolReader
- Constant_PoolAbstractions
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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_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_PoolReader → Constant_PoolAbstractions
-
final
type
Constant_Pool_Index = Int
- Definition Classes
- Constant_PoolAbstractions
-
type
DeferredActionsStore = Buffer[(ClassFile) ⇒ ClassFile] with Constant_Pool_Entry
- Definition Classes
- Constant_PoolAbstractions
-
type
Instructions = Array[Instruction]
- Definition Classes
- CodeBinding
Abstract Value Members
- abstract def cache: BytecodeInstructionsCache
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
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_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
-
val
Constant_Pool_EntryManifest: ClassTag[Constant_Pool_Entry]
- Definition Classes
- ConstantPoolBinding → 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
- Definition Classes
- Constant_PoolReader → Constant_PoolAbstractions
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
implicit
def
cpIndexTocpEntry(index: Constant_Pool_Index)(implicit cp: Constant_Pool): Constant_Pool_Entry
- Definition Classes
- ConstantPoolBinding
-
def
createDeferredActionsStore(): DeferredActionsStore
- Attributes
- protected[this]
- Definition Classes
- ConstantPoolBinding → Constant_PoolReader
-
def
deferredInvokedynamicResolution(classFile: ClassFile, cp: Constant_Pool, ap_name_index: Constant_Pool_Index, ap_descriptor_index: Constant_Pool_Index, invokeDynamicInfo: CONSTANT_InvokeDynamic_info, instructions: Array[Instruction], pc: PC): ClassFile
Resolves an org.opalj.br.instructions.INCOMPLETE_INVOKEDYNAMIC instruction using the BootstrapMethodTable of the class.
Resolves an org.opalj.br.instructions.INCOMPLETE_INVOKEDYNAMIC instruction using the BootstrapMethodTable of the class.
Deferred resolution is necessary since the BootstrapMethodTable – which is an attribute of the class file – is loaded after the methods.
- classFile
The ClassFile with which the deferred action was registered.
- cp
The class file's Constant_Pool.
- invokeDynamicInfo
The org.opalj.br.instructions.INVOKEDYNAMIC instruction's constant pool entry.
- instructions
This method's array of instructions.Instructions. (The array returned by the #Instructions method.)
- pc
The program counter of the
invokedynamicinstruction.
- Attributes
- protected
- Definition Classes
- DeferredInvokedynamicResolution
- Note
This method is called (back) after the class file was completely loaded. Registration as a callback method happens whenever an
invokedynamicinstruction is found in a method's byte code.Overriding this Method
To perform additional analyses on
invokedynamicinstructions, e.g., to fully resolve the call target, a subclass may override this method to do so. When you override this method, you should call this method (super.deferredResolveInvokedynamicInstruction) to ensure that the default resolution is carried out.
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
registerDeferredAction(cp: Constant_Pool)(deferredAction: (ClassFile) ⇒ ClassFile): Unit
- Definition Classes
- Constant_PoolReader
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )