Packages

t

org.opalj.br.reader

CachedBytecodeReaderAndBinding

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.

Source
CachedBytecodeReaderAndBinding.scala
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. CachedBytecodeReaderAndBinding
  2. InstructionsDeserializer
  3. DeferredDynamicConstantResolution
  4. DeferredInvokedynamicResolution
  5. CodeBinding
  6. ConstantPoolBinding
  7. Constant_PoolReader
  8. Constant_PoolAbstractions
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. type CONSTANT_Class_info = cp.CONSTANT_Class_info
  2. type CONSTANT_Double_info = cp.CONSTANT_Double_info
  3. type CONSTANT_Dynamic_info = cp.CONSTANT_Dynamic_info
  4. type CONSTANT_Fieldref_info = cp.CONSTANT_Fieldref_info
  5. type CONSTANT_Float_info = cp.CONSTANT_Float_info
  6. type CONSTANT_Integer_info = cp.CONSTANT_Integer_info
  7. type CONSTANT_InterfaceMethodref_info = cp.CONSTANT_InterfaceMethodref_info
  8. type CONSTANT_InvokeDynamic_info = cp.CONSTANT_InvokeDynamic_info
  9. type CONSTANT_Long_info = cp.CONSTANT_Long_info
  10. type CONSTANT_MethodHandle_info = cp.CONSTANT_MethodHandle_info
  11. type CONSTANT_MethodType_info = cp.CONSTANT_MethodType_info
  12. type CONSTANT_Methodref_info = cp.CONSTANT_Methodref_info
  13. type CONSTANT_Module_info = cp.CONSTANT_Module_info
  14. type CONSTANT_NameAndType_info = cp.CONSTANT_NameAndType_info
  15. type CONSTANT_Package_info = cp.CONSTANT_Package_info
  16. type CONSTANT_String_info = cp.CONSTANT_String_info
  17. type CONSTANT_Utf8_info = cp.CONSTANT_Utf8_info
  18. abstract type ClassFile <: br.ClassFile
  19. final type Constant_Pool = Array[Constant_Pool_Entry]
    Definition Classes
    Constant_PoolAbstractions
  20. type Constant_Pool_Entry = cp.Constant_Pool_Entry
  21. final type Constant_Pool_Index = Int
    Definition Classes
    Constant_PoolAbstractions
  22. 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
  23. type Instructions = Array[Instruction]
    Definition Classes
    CodeBinding

Abstract Value Members

  1. abstract def cache: BytecodeInstructionsCache

Concrete Value Members

  1. def CONSTANT_Class_info(i: Int): CONSTANT_Class_info
  2. def CONSTANT_Double_info(d: Double): CONSTANT_Double_info
  3. def CONSTANT_Dynamic_info(bootstrap_method_attr_index: Constant_Pool_Index, name_and_type_index: Constant_Pool_Index): CONSTANT_Dynamic_info
  4. def CONSTANT_Fieldref_info(class_index: Constant_Pool_Index, name_and_type_index: Constant_Pool_Index): CONSTANT_Fieldref_info
  5. def CONSTANT_Float_info(f: Float): CONSTANT_Float_info
  6. def CONSTANT_Integer_info(i: Int): CONSTANT_Integer_info
  7. def CONSTANT_InterfaceMethodref_info(class_index: Constant_Pool_Index, name_and_type_index: Constant_Pool_Index): CONSTANT_InterfaceMethodref_info
  8. def CONSTANT_InvokeDynamic_info(bootstrap_method_attr_index: Constant_Pool_Index, name_and_type_index: Constant_Pool_Index): CONSTANT_InvokeDynamic_info
  9. def CONSTANT_Long_info(l: Long): CONSTANT_Long_info
  10. def CONSTANT_MethodHandle_info(reference_kind: Int, reference_index: Int): CONSTANT_MethodHandle_info
  11. def CONSTANT_MethodType_info(descriptor_index: Constant_Pool_Index): CONSTANT_MethodType_info
  12. def CONSTANT_Methodref_info(class_index: Constant_Pool_Index, name_and_type_index: Constant_Pool_Index): CONSTANT_Methodref_info
  13. def CONSTANT_Module_info(name_index: Constant_Pool_Index): CONSTANT_Module_info
  14. def CONSTANT_NameAndType_info(name_index: Constant_Pool_Index, descriptor_index: Constant_Pool_Index): CONSTANT_NameAndType_info
  15. def CONSTANT_Package_info(name_index: Constant_Pool_Index): CONSTANT_Package_info
  16. def CONSTANT_String_info(i: Int): CONSTANT_String_info
  17. def CONSTANT_Utf8_info(r: Array[Byte], s: String): CONSTANT_Utf8_info
  18. def Constant_Pool(in: DataInputStream): Constant_Pool
    Definition Classes
    Constant_PoolReader
  19. 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
    CachedBytecodeReaderAndBindingInstructionsDeserializer
  20. 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_PoolReaderConstant_PoolAbstractions
  21. implicit val constantPoolEntryType: ClassTag[cp.Constant_Pool_Entry]
  22. implicit def cpIndexTocpEntry(index: Constant_Pool_Index)(implicit cp: Constant_Pool): Constant_Pool_Entry
    Definition Classes
    ConstantPoolBinding
  23. def registerDeferredAction(cp: Constant_Pool)(deferredAction: (ClassFile) => ClassFile): Unit
    Definition Classes
    Constant_PoolReader