Search in sources :

Example 6 with TraceMethodVisitor

use of org.jetbrains.org.objectweb.asm.util.TraceMethodVisitor in project kotlin by JetBrains.

the class FunctionCodegen method renderByteCodeIfAvailable.

private static String renderByteCodeIfAvailable(MethodVisitor mv) {
    String bytecode = null;
    if (mv instanceof TransformationMethodVisitor) {
        mv = ((TransformationMethodVisitor) mv).getTraceMethodVisitorIfPossible();
    }
    if (mv instanceof TraceMethodVisitor) {
        TraceMethodVisitor traceMethodVisitor = (TraceMethodVisitor) mv;
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        traceMethodVisitor.p.print(pw);
        pw.close();
        bytecode = sw.toString();
    }
    return bytecode;
}
Also used : StringWriter(java.io.StringWriter) TraceMethodVisitor(org.jetbrains.org.objectweb.asm.util.TraceMethodVisitor) PrintWriter(java.io.PrintWriter)

Aggregations

TraceMethodVisitor (org.jetbrains.org.objectweb.asm.util.TraceMethodVisitor)6 PrintWriter (java.io.PrintWriter)5 Textifier (org.jetbrains.org.objectweb.asm.util.Textifier)5 StringWriter (java.io.StringWriter)4 NotNull (org.jetbrains.annotations.NotNull)2 Method (java.lang.reflect.Method)1 org.jetbrains.org.objectweb.asm (org.jetbrains.org.objectweb.asm)1 ClassReader (org.jetbrains.org.objectweb.asm.ClassReader)1 InstructionAdapter (org.jetbrains.org.objectweb.asm.commons.InstructionAdapter)1 ClassNode (org.jetbrains.org.objectweb.asm.tree.ClassNode)1 MethodNode (org.jetbrains.org.objectweb.asm.tree.MethodNode)1 Analyzer (org.jetbrains.org.objectweb.asm.tree.analysis.Analyzer)1 AnalyzerException (org.jetbrains.org.objectweb.asm.tree.analysis.AnalyzerException)1 BasicValue (org.jetbrains.org.objectweb.asm.tree.analysis.BasicValue)1 SimpleVerifier (org.jetbrains.org.objectweb.asm.tree.analysis.SimpleVerifier)1