Packages

object BytecodeUtils

Source
BytecodeUtils.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. BytecodeUtils
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. implicit final class AnalyzerExtensions[V <: Value] extends AnyVal
  2. implicit final class FrameExtensions[V <: Value] extends AnyVal

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def callsiteTooLargeAfterInlining(caller: MethodNode, callee: MethodNode): Boolean
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  7. def cloneLabels(methodNode: MethodNode): Map[LabelNode, LabelNode]
  8. def cloneLocalVariableNodes(methodNode: MethodNode, labelMap: Map[LabelNode, LabelNode], calleeMethodName: String, localIndexMap: (Int) => Int): List[LocalVariableNode]

    Clone the local variable descriptors of methodNode and map their start and end labels according to the labelMap.

  9. def cloneTryCatchBlockNodes(methodNode: MethodNode, labelMap: Map[LabelNode, LabelNode]): List[TryCatchBlockNode]

    Clone the local try/catch blocks of methodNode and map their start and end and handler labels according to the labelMap.

  10. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  11. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  12. def finalJumpTarget(source: JumpInsnNode): LabelNode
  13. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  14. def findSingleCall(method: MethodNode, such: (MethodInsnNode) => Boolean): Option[MethodInsnNode]
  15. def fixLoadedNothingOrNullValue(loadedType: Type, loadInstr: AbstractInsnNode, methodNode: MethodNode, bTypes: BTypes): Unit

    This method is used by optimizer components to eliminate phantom values of instruction that load a value of type Nothing$ or Null$.

    This method is used by optimizer components to eliminate phantom values of instruction that load a value of type Nothing$ or Null$. Such values on the stack don't interact well with stack map frames.

    For example, opt.getOrElse(throw e) is re-written to an invocation of the lambda body, a method with return type Nothing$. Similarly for opt.getOrElse(null) and Null$.

    During bytecode generation this is handled by BCodeBodyBuilder.adapt. See the comment in that method which explains the issue with such phantom values.

  16. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  17. def getPop(size: Int): InsnNode
  18. def hasCallerSensitiveAnnotation(methodNode: MethodNode): Boolean
  19. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  20. def instructionResultSize(insn: AbstractInsnNode): Int
  21. def isAbstractMethod(methodNode: MethodNode): Boolean
  22. def isCall(instruction: AbstractInsnNode): Boolean
  23. def isConditionalJump(instruction: AbstractInsnNode): Boolean
  24. def isConstructor(methodNode: MethodNode): Boolean
  25. def isExecutable(instruction: AbstractInsnNode): Boolean
  26. def isFinalClass(classNode: ClassNode): Boolean
  27. def isFinalMethod(methodNode: MethodNode): Boolean
  28. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  29. def isInterface(classNode: ClassNode): Boolean
  30. def isJumpNonJsr(instruction: AbstractInsnNode): Boolean
  31. def isLoad(instruction: AbstractInsnNode): Boolean
  32. def isLoadOrStore(instruction: AbstractInsnNode): Boolean
  33. def isLoadStoreOrRet(instruction: AbstractInsnNode): Boolean
  34. def isNativeMethod(methodNode: MethodNode): Boolean
  35. def isPrivateMethod(methodNode: MethodNode): Boolean
  36. def isPublicMethod(methodNode: MethodNode): Boolean
  37. def isReference(t: Type): Boolean
  38. def isReturn(instruction: AbstractInsnNode): Boolean
  39. def isSize2LoadOrStore(opcode: Int): Boolean
  40. def isStaticCall(instruction: AbstractInsnNode): Boolean
  41. def isStaticMethod(methodNode: MethodNode): Boolean
  42. def isStore(instruction: AbstractInsnNode): Boolean
  43. def isStrictfpMethod(methodNode: MethodNode): Boolean
  44. def isSynchronizedMethod(methodNode: MethodNode): Boolean
  45. def isSyntheticMethod(methodNode: MethodNode): Boolean
  46. def isVirtualCall(instruction: AbstractInsnNode): Boolean
  47. def loadZeroForTypeSort(sort: Int): InsnNode
  48. final val maxJVMMethodSize: Int(65535)
  49. final val maxMethodSizeAfterInline: 62259
  50. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  51. def negateJumpOpcode(jumpOpcode: Int): Int
  52. def newLabelNode: LabelNode

    Create a new LabelNode with a correctly associated Label.

  53. def nextExecutableInstruction(insn: AbstractInsnNode, alsoKeep: (AbstractInsnNode) => Boolean = Set()): Option[AbstractInsnNode]
    Annotations
    @tailrec()
  54. def nextExecutableInstructionOrLabel(insn: AbstractInsnNode): Option[AbstractInsnNode]
    Annotations
    @tailrec()
  55. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  56. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  57. def parametersSize(methodNode: MethodNode): Int

    The number of local variable slots used for parameters and for the this reference.

  58. def previousExecutableInstruction(insn: AbstractInsnNode, stopBefore: (AbstractInsnNode) => Boolean = Set()): Option[AbstractInsnNode]

    Find the nearest preceding node to insn which is executable (i.e., not a label / line number) and which is not selected by stopBefore.

    Find the nearest preceding node to insn which is executable (i.e., not a label / line number) and which is not selected by stopBefore.

    Annotations
    @tailrec()
  59. def previousLineNumber(insn: AbstractInsnNode): Option[Int]
    Annotations
    @tailrec()
  60. def removeJumpAndAdjustStack(method: MethodNode, jump: JumpInsnNode): Unit
  61. def sameTargetExecutableInstruction(a: JumpInsnNode, b: JumpInsnNode): Boolean
  62. def substituteLabel(reference: AnyRef, from: LabelNode, to: LabelNode): Unit
  63. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  64. def toString(): String
    Definition Classes
    AnyRef → Any
  65. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  66. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  67. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  68. object ConditionalJump
  69. object Goto
  70. object JumpNonJsr
  71. object VarInstruction

Inherited from AnyRef

Inherited from Any

Ungrouped