X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fcodegen%2Futils%2FClassBuilder.java;h=e0571dbd321bf46f63f822d3ebcb0fbccc8ace9e;hb=HEAD;hp=0fe185e611df41ae90efad7e394b77119b0328f4;hpb=cde82ba81327d5515fdca362f7f4c70f5103ae80;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/ClassBuilder.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/ClassBuilder.java index 0fe185e61..e0571dbd3 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/ClassBuilder.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/utils/ClassBuilder.java @@ -11,9 +11,15 @@ import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; import org.objectweb.asm.commons.CodeSizeEvaluator; import org.objectweb.asm.util.TraceClassVisitor; +import org.simantics.scl.compiler.internal.codegen.utils.LoggingOutputStream.LogLevel; import org.simantics.scl.compiler.top.SCLCompilerConfiguration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class ClassBuilder { + + private static final Logger LOGGER = LoggerFactory.getLogger(ClassBuilder.class); + ModuleBuilder moduleBuilder; String className; String superClassName; @@ -28,8 +34,9 @@ public class ClassBuilder { this.className = className; this.superClassName = superClassName; this.classWriter = new ClassWriter(ClassWriter.COMPUTE_MAXS); - this.classVisitor = SCLCompilerConfiguration.SHOW_COMPILED_BYTECODE - ? new TraceClassVisitor(classWriter, new PrintWriter(System.out)) + this.classVisitor = SCLCompilerConfiguration.SHOW_COMPILED_BYTECODE + && SCLCompilerConfiguration.debugFilter(moduleBuilder.namingPolicy.getModuleName()) + ? new TraceClassVisitor(classWriter, new PrintWriter(new LoggingOutputStream(LOGGER, LogLevel.INFO))) : classWriter; classVisitor.visit(Opcodes.V1_5, access, className, null, superClassName, interfaces); } @@ -96,9 +103,13 @@ public class ClassBuilder { methodVisitor.visitEnd(); } - public MethodBuilderBase addConstructor(int access, TypeDesc[] params) { + public MethodBuilderBase addConstructorBase(int access, TypeDesc[] params) { return addMethodBase(access, "", TypeDesc.VOID, params); } + + public MethodBuilder addConstructor(int access, TypeDesc[] params) { + return addMethod(access, "", TypeDesc.VOID, params); + } public MethodBuilder addInitializer() { return addMethod(Opcodes.ACC_PUBLIC, "", TypeDesc.VOID, Constants.EMPTY_TYPEDESC_ARRAY);