< prev index next >

src/jdk.jextract/share/classes/com/sun/tools/jextract/AsmCodeFactory.java

Print this page

        

*** 89,101 **** logger.info(() -> "Instantiate AsmCodeFactory for " + header.path); this.owner = header; this.internal_name = Utils.toInternalName(owner.pkgName, owner.clsName); this.global_cw = new ClassWriter(ClassWriter.COMPUTE_FRAMES); this.types = new HashMap<>(); ! global_cw.visit(V1_8, ACC_PUBLIC | ACC_ABSTRACT | ACC_INTERFACE, ! internal_name, ! null, "java/lang/Object", null); } private void generateNativeHeader() { generateMacros(); AnnotationVisitor av = global_cw.visitAnnotation(NATIVE_HEADER, true); --- 89,105 ---- logger.info(() -> "Instantiate AsmCodeFactory for " + header.path); this.owner = header; this.internal_name = Utils.toInternalName(owner.pkgName, owner.clsName); this.global_cw = new ClassWriter(ClassWriter.COMPUTE_FRAMES); this.types = new HashMap<>(); ! } ! ! private String[] getSuperInterfaces() { ! String[] interfaces = owner.getIncludedFiles(). ! map(hf -> Utils.toInternalName(hf.pkgName, hf.clsName)). ! toArray(String[]::new); ! return interfaces.length != 0 ? interfaces : null; } private void generateNativeHeader() { generateMacros(); AnnotationVisitor av = global_cw.visitAnnotation(NATIVE_HEADER, true);
*** 555,564 **** --- 559,571 ---- protected synchronized void produce() { if (built) { throw new IllegalStateException("Produce is called multiple times"); } built = true; + global_cw.visit(V1_8, ACC_PUBLIC | ACC_ABSTRACT | ACC_INTERFACE, + internal_name, + null, "java/lang/Object", getSuperInterfaces()); generateNativeHeader(); try { writeClassFile(global_cw, owner.clsName); } catch (IOException ex) { handleException(ex);
< prev index next >