Package org.adoptopenjdk.jitwatch.loader
Class BytecodeLoader
java.lang.Object
org.adoptopenjdk.jitwatch.loader.BytecodeLoader
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final com.chrisnewland.freelogj.Loggerprivate static final Patternprivate static final Map<String, BytecodeLoader.BytecodeSection> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidbuildClassGenerics(String line, ClassBC classBytecode) static MetaClassbuildMetaClassFromClass(String fqClassName) private static BytecodeLoader.BytecodeSectionchangeSection(BytecodeLoader.BytecodeSection nextSection) private static booleancouldBeMemberSignature(String line) static ClassBCfetchBytecodeForClass(List<String> classLocations, String fqClassName, boolean cacheBytecode) static ClassBCfetchBytecodeForClass(List<String> classLocations, String fqClassName, Path javapPath, boolean cacheBytecode) private static StringgetBytecodeStringViaProcess(List<String> classLocations, String fqClassName, Path javapPath) private static BytecodeLoader.BytecodeSectiongetNextSection(BytecodeLoader.BytecodeSection currentSection, String line) private static StringgetSourceFile(String line) private static intgetVersionPart(String line) private static booleanisLocalVariableLine(String line) private static booleanprivate static booleanisStackMapTable(String line) static ClassBCprivate static ClassBCparseByteCodeFromString(String fqClassName, String byteCodeString, boolean cacheBytecode) static List<BytecodeInstruction> parseInstructions(String bytecode) private static BytecodeLoader.BytecodeSectionperformCODE(String fqClassName, ClassBC classBytecode, StringBuilder builder, BytecodeLoader.BytecodeSection section, MemberSignatureParts msp, MemberBytecode memberBytecode, String line) private static BytecodeLoader.BytecodeSectionperformConstantPool(String fqClassName, ClassBC classBytecode, StringBuilder builder, BytecodeLoader.BytecodeSection section, MemberSignatureParts msp, MemberBytecode memberBytecode, String line) private static BytecodeLoader.BytecodeSectionperformEXCEPTIONTABLE(String fqClassName, ClassBC classBytecode, StringBuilder builder, BytecodeLoader.BytecodeSection section, MemberSignatureParts msp, MemberBytecode memberBytecode, String line) private static BytecodeLoader.BytecodeSectionperformLINETABLE(String fqClassName, ClassBC classBytecode, StringBuilder builder, BytecodeLoader.BytecodeSection section, MemberSignatureParts msp, MemberBytecode memberBytecode, String line) private static voidprocessParameters(String paramString, BytecodeInstruction instruction) private static voidsectionFinished(String fqClassName, BytecodeLoader.BytecodeSection lastSection, MemberSignatureParts msp, StringBuilder builder, MemberBytecode memberBytecode, ClassBC classBytecode) private static voidstoreExceptionTable(String fqClassName, MemberBytecode memberBytecode, String exceptionLines, MemberSignatureParts msp) private static voidstoreLineNumberTable(String fqClassName, MemberBytecode memberBytecode, String tableLines, MemberSignatureParts msp)
-
Field Details
-
logger
private static final com.chrisnewland.freelogj.Logger logger -
PATTERN_BYTECODE_INSTRUCTION
-
sectionLabelMap
-
-
Constructor Details
-
BytecodeLoader
private BytecodeLoader()
-
-
Method Details
-
buildMetaClassFromClass
-
fetchBytecodeForClass
-
fetchBytecodeForClass
-
getBytecodeStringViaProcess
private static String getBytecodeStringViaProcess(List<String> classLocations, String fqClassName, Path javapPath) throws IOException - Throws:
IOException
-
parseByteCodeFromString
-
parse
-
buildClassGenerics
-
performLINETABLE
private static BytecodeLoader.BytecodeSection performLINETABLE(String fqClassName, ClassBC classBytecode, StringBuilder builder, BytecodeLoader.BytecodeSection section, MemberSignatureParts msp, MemberBytecode memberBytecode, String line) -
performEXCEPTIONTABLE
private static BytecodeLoader.BytecodeSection performEXCEPTIONTABLE(String fqClassName, ClassBC classBytecode, StringBuilder builder, BytecodeLoader.BytecodeSection section, MemberSignatureParts msp, MemberBytecode memberBytecode, String line) -
performConstantPool
private static BytecodeLoader.BytecodeSection performConstantPool(String fqClassName, ClassBC classBytecode, StringBuilder builder, BytecodeLoader.BytecodeSection section, MemberSignatureParts msp, MemberBytecode memberBytecode, String line) -
performCODE
private static BytecodeLoader.BytecodeSection performCODE(String fqClassName, ClassBC classBytecode, StringBuilder builder, BytecodeLoader.BytecodeSection section, MemberSignatureParts msp, MemberBytecode memberBytecode, String line) -
isRunTimeVisibleAnnotation
-
isLocalVariableLine
-
isStackMapTable
-
couldBeMemberSignature
-
sectionFinished
private static void sectionFinished(String fqClassName, BytecodeLoader.BytecodeSection lastSection, MemberSignatureParts msp, StringBuilder builder, MemberBytecode memberBytecode, ClassBC classBytecode) -
changeSection
private static BytecodeLoader.BytecodeSection changeSection(BytecodeLoader.BytecodeSection nextSection) -
getNextSection
private static BytecodeLoader.BytecodeSection getNextSection(BytecodeLoader.BytecodeSection currentSection, String line) -
getVersionPart
-
getSourceFile
-
parseInstructions
-
storeLineNumberTable
private static void storeLineNumberTable(String fqClassName, MemberBytecode memberBytecode, String tableLines, MemberSignatureParts msp) -
storeExceptionTable
private static void storeExceptionTable(String fqClassName, MemberBytecode memberBytecode, String exceptionLines, MemberSignatureParts msp) -
processParameters
-