# HG changeset patch # User Jaroslav Tulach # Date 1448125503 -3600 # Node ID e66e962fed132ac29490ccd03e6313570e5c6cff # Parent 82ec9872793a26abbe9a4a4eefe97b6f2f655329 Don't copy the HTML/Java synthetic fields - they will be generated at method visitEnd time. Eliminates class format errors after incremental compilations. diff -r 82ec9872793a -r e66e962fed13 boot/src/main/java/org/netbeans/html/boot/impl/FnUtils.java --- a/boot/src/main/java/org/netbeans/html/boot/impl/FnUtils.java Thu Nov 05 23:53:34 2015 +0100 +++ b/boot/src/main/java/org/netbeans/html/boot/impl/FnUtils.java Sat Nov 21 18:05:03 2015 +0100 @@ -58,6 +58,7 @@ import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.FieldVisitor; import org.objectweb.asm.Label; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; @@ -169,6 +170,18 @@ ); } + @Override + public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) { + if (name.startsWith("$$fn$$")) { + return null; + } + return superField(access, name, desc, signature, value); + } + + final FieldVisitor superField(int access, String name, String desc, String signature, Object value) { + return super.visitField(access, name, desc, signature, value); + } + private final class FindInMethod extends MethodVisitor { private final String name; @@ -457,7 +470,7 @@ } return true; } - + @Override public void visitEnd() { super.visitEnd(); @@ -466,7 +479,7 @@ // native method super.visitMaxs(1, 0); } - FindInClass.this.visitField( + FindInClass.this.superField( Opcodes.ACC_PRIVATE | Opcodes.ACC_STATIC, "$$fn$$" + name + "_" + found, "Lorg/netbeans/html/boot/spi/Fn;",