diff --git a/.gitignore b/.gitignore index 1cfc788..5191f3a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,31 +3,11 @@ /.build-*.log /*.src.rpm /noarch -/asm-6.2.pom -/asm-analysis-6.2.pom -/asm-commons-6.2.pom -/asm-test-6.2.pom -/asm-tree-6.2.pom -/asm-util-6.2.pom -/asm-xml-6.2.pom -/asm-6.2.1.pom -/asm-analysis-6.2.1.pom -/asm-commons-6.2.1.pom -/asm-test-6.2.1.pom -/asm-tree-6.2.1.pom -/asm-util-6.2.1.pom -/asm-xml-6.2.1.pom /objectweb-asm-*.tar.gz /objectweb-asm-*/ -/asm-7.0.pom -/asm-analysis-7.0.pom -/asm-commons-7.0.pom -/asm-test-7.0.pom -/asm-tree-7.0.pom -/asm-util-7.0.pom -/asm-8.0.1.pom -/asm-analysis-8.0.1.pom -/asm-commons-8.0.1.pom -/asm-test-8.0.1.pom -/asm-tree-8.0.1.pom -/asm-util-8.0.1.pom +/asm-9.1.pom +/asm-analysis-9.1.pom +/asm-commons-9.1.pom +/asm-test-9.1.pom +/asm-tree-9.1.pom +/asm-util-9.1.pom diff --git a/0002-Catch-CompileException-in-test.patch b/0001-Catch-CompileException-in-test.patch similarity index 52% rename from 0002-Catch-CompileException-in-test.patch rename to 0001-Catch-CompileException-in-test.patch index 76e2fe7..26bb45d 100644 --- a/0002-Catch-CompileException-in-test.patch +++ b/0001-Catch-CompileException-in-test.patch @@ -1,6 +1,17 @@ +From feff2c9f3e5bc3a9900ac0ce7dfb9e9c2ce3e505 Mon Sep 17 00:00:00 2001 +From: Mat Booth +Date: Fri, 19 Feb 2021 15:36:30 +0000 +Subject: [PATCH] Catch CompileException in test + +--- + asm-util/src/test/java/org/objectweb/asm/util/ASMifierTest.java | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/asm-util/src/test/java/org/objectweb/asm/util/ASMifierTest.java b/asm-util/src/test/java/org/objectweb/asm/util/ASMifierTest.java +index b097b58..adfde2c 100644 --- a/asm-util/src/test/java/org/objectweb/asm/util/ASMifierTest.java +++ b/asm-util/src/test/java/org/objectweb/asm/util/ASMifierTest.java -@@ -107,8 +107,8 @@ public class ASMifierTest extends AsmTes +@@ -107,8 +107,8 @@ public class ASMifierTest extends AsmTest { } private static byte[] compile(final String name, final String source) throws IOException { @@ -10,3 +21,6 @@ UnitCompiler unitCompiler = new UnitCompiler(parser.parseCompilationUnit(), ICLASS_LOADER); return unitCompiler.compileUnit(true, true, true)[0].toByteArray(); } catch (CompileException e) { +-- +2.28.0 + diff --git a/0001-Revert-upstream-change-2a58bc9.patch b/0001-Revert-upstream-change-2a58bc9.patch deleted file mode 100644 index 907acb5..0000000 --- a/0001-Revert-upstream-change-2a58bc9.patch +++ /dev/null @@ -1,813 +0,0 @@ -From df50f201a0f253bc55dc89e191ac66cb920a3274 Mon Sep 17 00:00:00 2001 -From: Mat Booth -Date: Wed, 6 May 2020 15:09:27 +0100 -Subject: [PATCH] Revert upstream change 2a58bc9 - ---- - .../commons/RemappingAnnotationAdapter.java | 85 ++++++ - .../asm/commons/RemappingClassAdapter.java | 167 +++++++++++ - .../asm/commons/RemappingFieldAdapter.java | 74 +++++ - .../asm/commons/RemappingMethodAdapter.java | 279 ++++++++++++++++++ - .../commons/RemappingSignatureAdapter.java | 157 ++++++++++ - 5 files changed, 762 insertions(+) - create mode 100644 asm-commons/src/main/java/org/objectweb/asm/commons/RemappingAnnotationAdapter.java - create mode 100644 asm-commons/src/main/java/org/objectweb/asm/commons/RemappingClassAdapter.java - create mode 100644 asm-commons/src/main/java/org/objectweb/asm/commons/RemappingFieldAdapter.java - create mode 100644 asm-commons/src/main/java/org/objectweb/asm/commons/RemappingMethodAdapter.java - create mode 100644 asm-commons/src/main/java/org/objectweb/asm/commons/RemappingSignatureAdapter.java - -diff --git a/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingAnnotationAdapter.java b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingAnnotationAdapter.java -new file mode 100644 -index 0000000..86c6ee9 ---- /dev/null -+++ b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingAnnotationAdapter.java -@@ -0,0 +1,85 @@ -+// ASM: a very small and fast Java bytecode manipulation framework -+// Copyright (c) 2000-2011 INRIA, France Telecom -+// All rights reserved. -+// -+// Redistribution and use in source and binary forms, with or without -+// modification, are permitted provided that the following conditions -+// are met: -+// 1. Redistributions of source code must retain the above copyright -+// notice, this list of conditions and the following disclaimer. -+// 2. Redistributions in binary form must reproduce the above copyright -+// notice, this list of conditions and the following disclaimer in the -+// documentation and/or other materials provided with the distribution. -+// 3. Neither the name of the copyright holders nor the names of its -+// contributors may be used to endorse or promote products derived from -+// this software without specific prior written permission. -+// -+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -+// THE POSSIBILITY OF SUCH DAMAGE. -+ -+package org.objectweb.asm.commons; -+ -+import org.objectweb.asm.AnnotationVisitor; -+import org.objectweb.asm.Opcodes; -+ -+/** -+ * An {@link AnnotationVisitor} adapter for type remapping. -+ * -+ * @deprecated use {@link AnnotationRemapper} instead. -+ * @author Eugene Kuleshov -+ */ -+@Deprecated -+public class RemappingAnnotationAdapter extends AnnotationVisitor { -+ -+ protected final Remapper remapper; -+ -+ public RemappingAnnotationAdapter( -+ final AnnotationVisitor annotationVisitor, final Remapper remapper) { -+ this(Opcodes.ASM6, annotationVisitor, remapper); -+ } -+ -+ protected RemappingAnnotationAdapter( -+ final int api, final AnnotationVisitor annotationVisitor, final Remapper remapper) { -+ super(api, annotationVisitor); -+ this.remapper = remapper; -+ } -+ -+ @Override -+ public void visit(final String name, final Object value) { -+ av.visit(name, remapper.mapValue(value)); -+ } -+ -+ @Override -+ public void visitEnum(final String name, final String descriptor, final String value) { -+ av.visitEnum(name, remapper.mapDesc(descriptor), value); -+ } -+ -+ @Override -+ public AnnotationVisitor visitAnnotation(final String name, final String descriptor) { -+ AnnotationVisitor annotationVisitor = av.visitAnnotation(name, remapper.mapDesc(descriptor)); -+ return annotationVisitor == null -+ ? null -+ : (annotationVisitor == av -+ ? this -+ : new RemappingAnnotationAdapter(annotationVisitor, remapper)); -+ } -+ -+ @Override -+ public AnnotationVisitor visitArray(final String name) { -+ AnnotationVisitor annotationVisitor = av.visitArray(name); -+ return annotationVisitor == null -+ ? null -+ : (annotationVisitor == av -+ ? this -+ : new RemappingAnnotationAdapter(annotationVisitor, remapper)); -+ } -+} -diff --git a/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingClassAdapter.java b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingClassAdapter.java -new file mode 100644 -index 0000000..b4cc08c ---- /dev/null -+++ b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingClassAdapter.java -@@ -0,0 +1,167 @@ -+// ASM: a very small and fast Java bytecode manipulation framework -+// Copyright (c) 2000-2011 INRIA, France Telecom -+// All rights reserved. -+// -+// Redistribution and use in source and binary forms, with or without -+// modification, are permitted provided that the following conditions -+// are met: -+// 1. Redistributions of source code must retain the above copyright -+// notice, this list of conditions and the following disclaimer. -+// 2. Redistributions in binary form must reproduce the above copyright -+// notice, this list of conditions and the following disclaimer in the -+// documentation and/or other materials provided with the distribution. -+// 3. Neither the name of the copyright holders nor the names of its -+// contributors may be used to endorse or promote products derived from -+// this software without specific prior written permission. -+// -+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -+// THE POSSIBILITY OF SUCH DAMAGE. -+ -+package org.objectweb.asm.commons; -+ -+import org.objectweb.asm.AnnotationVisitor; -+import org.objectweb.asm.ClassVisitor; -+import org.objectweb.asm.FieldVisitor; -+import org.objectweb.asm.MethodVisitor; -+import org.objectweb.asm.ModuleVisitor; -+import org.objectweb.asm.Opcodes; -+import org.objectweb.asm.TypePath; -+ -+/** -+ * A {@link ClassVisitor} for type remapping. -+ * -+ * @deprecated use {@link ClassRemapper} instead. -+ * @author Eugene Kuleshov -+ */ -+@Deprecated -+public class RemappingClassAdapter extends ClassVisitor { -+ -+ protected final Remapper remapper; -+ -+ protected String className; -+ -+ public RemappingClassAdapter(final ClassVisitor classVisitor, final Remapper remapper) { -+ this(Opcodes.ASM6, classVisitor, remapper); -+ } -+ -+ protected RemappingClassAdapter( -+ final int api, final ClassVisitor classVisitor, final Remapper remapper) { -+ super(api, classVisitor); -+ this.remapper = remapper; -+ } -+ -+ @Override -+ public void visit( -+ final int version, -+ final int access, -+ final String name, -+ final String signature, -+ final String superName, -+ final String[] interfaces) { -+ this.className = name; -+ super.visit( -+ version, -+ access, -+ remapper.mapType(name), -+ remapper.mapSignature(signature, false), -+ remapper.mapType(superName), -+ interfaces == null ? null : remapper.mapTypes(interfaces)); -+ } -+ -+ @Override -+ public ModuleVisitor visitModule(final String name, final int flags, final String version) { -+ throw new RuntimeException("RemappingClassAdapter is deprecated, use ClassRemapper instead"); -+ } -+ -+ @Override -+ public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { -+ AnnotationVisitor annotationVisitor = -+ super.visitAnnotation(remapper.mapDesc(descriptor), visible); -+ return annotationVisitor == null ? null : createRemappingAnnotationAdapter(annotationVisitor); -+ } -+ -+ @Override -+ public AnnotationVisitor visitTypeAnnotation( -+ final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) { -+ AnnotationVisitor annotationVisitor = -+ super.visitTypeAnnotation(typeRef, typePath, remapper.mapDesc(descriptor), visible); -+ return annotationVisitor == null ? null : createRemappingAnnotationAdapter(annotationVisitor); -+ } -+ -+ @Override -+ public FieldVisitor visitField( -+ final int access, -+ final String name, -+ final String descriptor, -+ final String signature, -+ final Object value) { -+ FieldVisitor fieldVisitor = -+ super.visitField( -+ access, -+ remapper.mapFieldName(className, name, descriptor), -+ remapper.mapDesc(descriptor), -+ remapper.mapSignature(signature, true), -+ remapper.mapValue(value)); -+ return fieldVisitor == null ? null : createRemappingFieldAdapter(fieldVisitor); -+ } -+ -+ @Override -+ public MethodVisitor visitMethod( -+ final int access, -+ final String name, -+ final String descriptor, -+ final String signature, -+ final String[] exceptions) { -+ String newDescriptor = remapper.mapMethodDesc(descriptor); -+ MethodVisitor methodVisitor = -+ super.visitMethod( -+ access, -+ remapper.mapMethodName(className, name, descriptor), -+ newDescriptor, -+ remapper.mapSignature(signature, false), -+ exceptions == null ? null : remapper.mapTypes(exceptions)); -+ return methodVisitor == null -+ ? null -+ : createRemappingMethodAdapter(access, newDescriptor, methodVisitor); -+ } -+ -+ @Override -+ public void visitInnerClass( -+ final String name, final String outerName, final String innerName, final int access) { -+ super.visitInnerClass( -+ remapper.mapType(name), -+ outerName == null ? null : remapper.mapType(outerName), -+ innerName, -+ access); -+ } -+ -+ @Override -+ public void visitOuterClass(final String owner, final String name, final String descriptor) { -+ super.visitOuterClass( -+ remapper.mapType(owner), -+ name == null ? null : remapper.mapMethodName(owner, name, descriptor), -+ descriptor == null ? null : remapper.mapMethodDesc(descriptor)); -+ } -+ -+ protected FieldVisitor createRemappingFieldAdapter(final FieldVisitor fieldVisitor) { -+ return new RemappingFieldAdapter(fieldVisitor, remapper); -+ } -+ -+ protected MethodVisitor createRemappingMethodAdapter( -+ final int access, final String newDescriptor, final MethodVisitor methodVisitior) { -+ return new RemappingMethodAdapter(access, newDescriptor, methodVisitior, remapper); -+ } -+ -+ protected AnnotationVisitor createRemappingAnnotationAdapter(final AnnotationVisitor av) { -+ return new RemappingAnnotationAdapter(av, remapper); -+ } -+} -diff --git a/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingFieldAdapter.java b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingFieldAdapter.java -new file mode 100644 -index 0000000..5f14f33 ---- /dev/null -+++ b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingFieldAdapter.java -@@ -0,0 +1,74 @@ -+// ASM: a very small and fast Java bytecode manipulation framework -+// Copyright (c) 2000-2011 INRIA, France Telecom -+// All rights reserved. -+// -+// Redistribution and use in source and binary forms, with or without -+// modification, are permitted provided that the following conditions -+// are met: -+// 1. Redistributions of source code must retain the above copyright -+// notice, this list of conditions and the following disclaimer. -+// 2. Redistributions in binary form must reproduce the above copyright -+// notice, this list of conditions and the following disclaimer in the -+// documentation and/or other materials provided with the distribution. -+// 3. Neither the name of the copyright holders nor the names of its -+// contributors may be used to endorse or promote products derived from -+// this software without specific prior written permission. -+// -+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -+// THE POSSIBILITY OF SUCH DAMAGE. -+ -+package org.objectweb.asm.commons; -+ -+import org.objectweb.asm.AnnotationVisitor; -+import org.objectweb.asm.FieldVisitor; -+import org.objectweb.asm.Opcodes; -+import org.objectweb.asm.TypePath; -+ -+/** -+ * A {@link FieldVisitor} adapter for type remapping. -+ * -+ * @deprecated use {@link FieldRemapper} instead. -+ * @author Eugene Kuleshov -+ */ -+@Deprecated -+public class RemappingFieldAdapter extends FieldVisitor { -+ -+ private final Remapper remapper; -+ -+ public RemappingFieldAdapter(final FieldVisitor fieldVisitor, final Remapper remapper) { -+ this(Opcodes.ASM6, fieldVisitor, remapper); -+ } -+ -+ protected RemappingFieldAdapter( -+ final int api, final FieldVisitor fieldVisitor, final Remapper remapper) { -+ super(api, fieldVisitor); -+ this.remapper = remapper; -+ } -+ -+ @Override -+ public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { -+ AnnotationVisitor annotationVisitor = fv.visitAnnotation(remapper.mapDesc(descriptor), visible); -+ return annotationVisitor == null -+ ? null -+ : new RemappingAnnotationAdapter(annotationVisitor, remapper); -+ } -+ -+ @Override -+ public AnnotationVisitor visitTypeAnnotation( -+ final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) { -+ AnnotationVisitor annotationVisitor = -+ super.visitTypeAnnotation(typeRef, typePath, remapper.mapDesc(descriptor), visible); -+ return annotationVisitor == null -+ ? null -+ : new RemappingAnnotationAdapter(annotationVisitor, remapper); -+ } -+} -diff --git a/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingMethodAdapter.java b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingMethodAdapter.java -new file mode 100644 -index 0000000..cf21f18 ---- /dev/null -+++ b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingMethodAdapter.java -@@ -0,0 +1,279 @@ -+// ASM: a very small and fast Java bytecode manipulation framework -+// Copyright (c) 2000-2011 INRIA, France Telecom -+// All rights reserved. -+// -+// Redistribution and use in source and binary forms, with or without -+// modification, are permitted provided that the following conditions -+// are met: -+// 1. Redistributions of source code must retain the above copyright -+// notice, this list of conditions and the following disclaimer. -+// 2. Redistributions in binary form must reproduce the above copyright -+// notice, this list of conditions and the following disclaimer in the -+// documentation and/or other materials provided with the distribution. -+// 3. Neither the name of the copyright holders nor the names of its -+// contributors may be used to endorse or promote products derived from -+// this software without specific prior written permission. -+// -+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -+// THE POSSIBILITY OF SUCH DAMAGE. -+ -+package org.objectweb.asm.commons; -+ -+import org.objectweb.asm.AnnotationVisitor; -+import org.objectweb.asm.Handle; -+import org.objectweb.asm.Label; -+import org.objectweb.asm.MethodVisitor; -+import org.objectweb.asm.Opcodes; -+import org.objectweb.asm.TypePath; -+ -+/** -+ * A {@link LocalVariablesSorter} for type mapping. -+ * -+ * @deprecated use {@link MethodRemapper} instead. -+ * @author Eugene Kuleshov -+ */ -+@Deprecated -+public class RemappingMethodAdapter extends LocalVariablesSorter { -+ -+ protected final Remapper remapper; -+ -+ public RemappingMethodAdapter( -+ final int access, -+ final String descriptor, -+ final MethodVisitor methodVisitor, -+ final Remapper remapper) { -+ this(Opcodes.ASM6, access, descriptor, methodVisitor, remapper); -+ } -+ -+ protected RemappingMethodAdapter( -+ final int api, -+ final int access, -+ final String descriptor, -+ final MethodVisitor methodVisitor, -+ final Remapper remapper) { -+ super(api, access, descriptor, methodVisitor); -+ this.remapper = remapper; -+ } -+ -+ @Override -+ public AnnotationVisitor visitAnnotationDefault() { -+ AnnotationVisitor annotationVisitor = super.visitAnnotationDefault(); -+ return annotationVisitor == null -+ ? annotationVisitor -+ : new RemappingAnnotationAdapter(annotationVisitor, remapper); -+ } -+ -+ @Override -+ public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { -+ AnnotationVisitor annotationVisitor = -+ super.visitAnnotation(remapper.mapDesc(descriptor), visible); -+ return annotationVisitor == null -+ ? annotationVisitor -+ : new RemappingAnnotationAdapter(annotationVisitor, remapper); -+ } -+ -+ @Override -+ public AnnotationVisitor visitTypeAnnotation( -+ final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) { -+ AnnotationVisitor annotationVisitor = -+ super.visitTypeAnnotation(typeRef, typePath, remapper.mapDesc(descriptor), visible); -+ return annotationVisitor == null -+ ? annotationVisitor -+ : new RemappingAnnotationAdapter(annotationVisitor, remapper); -+ } -+ -+ @Override -+ public AnnotationVisitor visitParameterAnnotation( -+ final int parameter, final String descriptor, final boolean visible) { -+ AnnotationVisitor annotationVisitor = -+ super.visitParameterAnnotation(parameter, remapper.mapDesc(descriptor), visible); -+ return annotationVisitor == null -+ ? annotationVisitor -+ : new RemappingAnnotationAdapter(annotationVisitor, remapper); -+ } -+ -+ @Override -+ public void visitFrame( -+ final int type, -+ final int numLocal, -+ final Object[] local, -+ final int numStack, -+ final Object[] stack) { -+ super.visitFrame( -+ type, numLocal, remapEntries(numLocal, local), numStack, remapEntries(numStack, stack)); -+ } -+ -+ private Object[] remapEntries(final int numTypes, final Object[] entries) { -+ if (entries == null) { -+ return entries; -+ } -+ Object[] remappedEntries = null; -+ for (int i = 0; i < numTypes; ++i) { -+ if (entries[i] instanceof String) { -+ if (remappedEntries == null) { -+ remappedEntries = new Object[numTypes]; -+ System.arraycopy(entries, 0, remappedEntries, 0, numTypes); -+ } -+ remappedEntries[i] = remapper.mapType((String) entries[i]); -+ } -+ } -+ return remappedEntries == null ? entries : remappedEntries; -+ } -+ -+ @Override -+ public void visitFieldInsn( -+ final int opcode, final String owner, final String name, final String descriptor) { -+ super.visitFieldInsn( -+ opcode, -+ remapper.mapType(owner), -+ remapper.mapFieldName(owner, name, descriptor), -+ remapper.mapDesc(descriptor)); -+ } -+ -+ @Deprecated -+ @Override -+ public void visitMethodInsn( -+ final int opcode, final String owner, final String name, final String descriptor) { -+ if (api >= Opcodes.ASM5) { -+ super.visitMethodInsn(opcode, owner, name, descriptor); -+ return; -+ } -+ doVisitMethodInsn(opcode, owner, name, descriptor, opcode == Opcodes.INVOKEINTERFACE); -+ } -+ -+ @Override -+ public void visitMethodInsn( -+ final int opcode, -+ final String owner, -+ final String name, -+ final String descriptor, -+ final boolean isInterface) { -+ if (api < Opcodes.ASM5) { -+ super.visitMethodInsn(opcode, owner, name, descriptor, isInterface); -+ return; -+ } -+ doVisitMethodInsn(opcode, owner, name, descriptor, isInterface); -+ } -+ -+ private void doVisitMethodInsn( -+ final int opcode, -+ final String owner, -+ final String name, -+ final String descriptor, -+ final boolean isInterface) { -+ // Calling super.visitMethodInsn requires to call the correct version -+ // depending on this.api (otherwise infinite loops can occur). To -+ // simplify and to make it easier to automatically remove the backward -+ // compatibility code, we inline the code of the overridden method here. -+ // IMPORTANT: THIS ASSUMES THAT visitMethodInsn IS NOT OVERRIDDEN IN -+ // LocalVariableSorter. -+ if (mv != null) { -+ mv.visitMethodInsn( -+ opcode, -+ remapper.mapType(owner), -+ remapper.mapMethodName(owner, name, descriptor), -+ remapper.mapMethodDesc(descriptor), -+ isInterface); -+ } -+ } -+ -+ @Override -+ public void visitInvokeDynamicInsn( -+ final String name, -+ final String descriptor, -+ final Handle bootstrapMethodHandle, -+ final Object... bootstrapMethodArguments) { -+ for (int i = 0; i < bootstrapMethodArguments.length; i++) { -+ bootstrapMethodArguments[i] = remapper.mapValue(bootstrapMethodArguments[i]); -+ } -+ super.visitInvokeDynamicInsn( -+ remapper.mapInvokeDynamicMethodName(name, descriptor), -+ remapper.mapMethodDesc(descriptor), -+ (Handle) remapper.mapValue(bootstrapMethodHandle), -+ bootstrapMethodArguments); -+ } -+ -+ @Override -+ public void visitTypeInsn(final int opcode, final String type) { -+ super.visitTypeInsn(opcode, remapper.mapType(type)); -+ } -+ -+ @Override -+ public void visitLdcInsn(final Object value) { -+ super.visitLdcInsn(remapper.mapValue(value)); -+ } -+ -+ @Override -+ public void visitMultiANewArrayInsn(final String descriptor, final int numDimensions) { -+ super.visitMultiANewArrayInsn(remapper.mapDesc(descriptor), numDimensions); -+ } -+ -+ @Override -+ public AnnotationVisitor visitInsnAnnotation( -+ final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) { -+ AnnotationVisitor annotationVisitor = -+ super.visitInsnAnnotation(typeRef, typePath, remapper.mapDesc(descriptor), visible); -+ return annotationVisitor == null -+ ? annotationVisitor -+ : new RemappingAnnotationAdapter(annotationVisitor, remapper); -+ } -+ -+ @Override -+ public void visitTryCatchBlock( -+ final Label start, final Label end, final Label handler, final String type) { -+ super.visitTryCatchBlock(start, end, handler, type == null ? null : remapper.mapType(type)); -+ } -+ -+ @Override -+ public AnnotationVisitor visitTryCatchAnnotation( -+ final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) { -+ AnnotationVisitor annotationVisitor = -+ super.visitTryCatchAnnotation(typeRef, typePath, remapper.mapDesc(descriptor), visible); -+ return annotationVisitor == null -+ ? annotationVisitor -+ : new RemappingAnnotationAdapter(annotationVisitor, remapper); -+ } -+ -+ @Override -+ public void visitLocalVariable( -+ final String name, -+ final String descriptor, -+ final String signature, -+ final Label start, -+ final Label end, -+ final int index) { -+ super.visitLocalVariable( -+ name, -+ remapper.mapDesc(descriptor), -+ remapper.mapSignature(signature, true), -+ start, -+ end, -+ index); -+ } -+ -+ @Override -+ public AnnotationVisitor visitLocalVariableAnnotation( -+ final int typeRef, -+ final TypePath typePath, -+ final Label[] start, -+ final Label[] end, -+ final int[] index, -+ final String descriptor, -+ final boolean visible) { -+ AnnotationVisitor annotationVisitor = -+ super.visitLocalVariableAnnotation( -+ typeRef, typePath, start, end, index, remapper.mapDesc(descriptor), visible); -+ return annotationVisitor == null -+ ? annotationVisitor -+ : new RemappingAnnotationAdapter(annotationVisitor, remapper); -+ } -+} -diff --git a/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingSignatureAdapter.java b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingSignatureAdapter.java -new file mode 100644 -index 0000000..1553cd5 ---- /dev/null -+++ b/asm-commons/src/main/java/org/objectweb/asm/commons/RemappingSignatureAdapter.java -@@ -0,0 +1,157 @@ -+// ASM: a very small and fast Java bytecode manipulation framework -+// Copyright (c) 2000-2011 INRIA, France Telecom -+// All rights reserved. -+// -+// Redistribution and use in source and binary forms, with or without -+// modification, are permitted provided that the following conditions -+// are met: -+// 1. Redistributions of source code must retain the above copyright -+// notice, this list of conditions and the following disclaimer. -+// 2. Redistributions in binary form must reproduce the above copyright -+// notice, this list of conditions and the following disclaimer in the -+// documentation and/or other materials provided with the distribution. -+// 3. Neither the name of the copyright holders nor the names of its -+// contributors may be used to endorse or promote products derived from -+// this software without specific prior written permission. -+// -+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -+// THE POSSIBILITY OF SUCH DAMAGE. -+ -+package org.objectweb.asm.commons; -+ -+import org.objectweb.asm.Opcodes; -+import org.objectweb.asm.signature.SignatureVisitor; -+ -+/** -+ * A {@link SignatureVisitor} adapter for type mapping. -+ * -+ * @deprecated use {@link SignatureRemapper} instead. -+ * @author Eugene Kuleshov -+ */ -+@Deprecated -+public class RemappingSignatureAdapter extends SignatureVisitor { -+ -+ private final SignatureVisitor signatureVisitor; -+ -+ private final Remapper remapper; -+ -+ private String className; -+ -+ public RemappingSignatureAdapter( -+ final SignatureVisitor signatureVisitor, final Remapper remapper) { -+ this(Opcodes.ASM6, signatureVisitor, remapper); -+ } -+ -+ protected RemappingSignatureAdapter( -+ final int api, final SignatureVisitor signatureVisitor, final Remapper remapper) { -+ super(api); -+ this.signatureVisitor = signatureVisitor; -+ this.remapper = remapper; -+ } -+ -+ @Override -+ public void visitClassType(final String name) { -+ className = name; -+ signatureVisitor.visitClassType(remapper.mapType(name)); -+ } -+ -+ @Override -+ public void visitInnerClassType(final String name) { -+ String remappedOuter = remapper.mapType(className) + '$'; -+ className = className + '$' + name; -+ String remappedName = remapper.mapType(className); -+ int index = -+ remappedName.startsWith(remappedOuter) -+ ? remappedOuter.length() -+ : remappedName.lastIndexOf('$') + 1; -+ signatureVisitor.visitInnerClassType(remappedName.substring(index)); -+ } -+ -+ @Override -+ public void visitFormalTypeParameter(final String name) { -+ signatureVisitor.visitFormalTypeParameter(name); -+ } -+ -+ @Override -+ public void visitTypeVariable(final String name) { -+ signatureVisitor.visitTypeVariable(name); -+ } -+ -+ @Override -+ public SignatureVisitor visitArrayType() { -+ signatureVisitor.visitArrayType(); -+ return this; -+ } -+ -+ @Override -+ public void visitBaseType(final char descriptor) { -+ signatureVisitor.visitBaseType(descriptor); -+ } -+ -+ @Override -+ public SignatureVisitor visitClassBound() { -+ signatureVisitor.visitClassBound(); -+ return this; -+ } -+ -+ @Override -+ public SignatureVisitor visitExceptionType() { -+ signatureVisitor.visitExceptionType(); -+ return this; -+ } -+ -+ @Override -+ public SignatureVisitor visitInterface() { -+ signatureVisitor.visitInterface(); -+ return this; -+ } -+ -+ @Override -+ public SignatureVisitor visitInterfaceBound() { -+ signatureVisitor.visitInterfaceBound(); -+ return this; -+ } -+ -+ @Override -+ public SignatureVisitor visitParameterType() { -+ signatureVisitor.visitParameterType(); -+ return this; -+ } -+ -+ @Override -+ public SignatureVisitor visitReturnType() { -+ signatureVisitor.visitReturnType(); -+ return this; -+ } -+ -+ @Override -+ public SignatureVisitor visitSuperclass() { -+ signatureVisitor.visitSuperclass(); -+ return this; -+ } -+ -+ @Override -+ public void visitTypeArgument() { -+ signatureVisitor.visitTypeArgument(); -+ } -+ -+ @Override -+ public SignatureVisitor visitTypeArgument(final char wildcard) { -+ signatureVisitor.visitTypeArgument(wildcard); -+ return this; -+ } -+ -+ @Override -+ public void visitEnd() { -+ signatureVisitor.visitEnd(); -+ } -+} --- -2.26.0 - diff --git a/asm-all.pom b/asm-all.pom index 230058b..3f03cc5 100644 --- a/asm-all.pom +++ b/asm-all.pom @@ -33,7 +33,7 @@ org.ow2.asm - asm-tree + asm-util @VERSION@ diff --git a/objectweb-asm.spec b/objectweb-asm.spec index be5f979..358d47d 100644 --- a/objectweb-asm.spec +++ b/objectweb-asm.spec @@ -2,8 +2,8 @@ %bcond_without osgi Name: objectweb-asm -Version: 8.0.1 -Release: 2%{?dist} +Version: 9.1 +Release: 1%{?dist} Summary: Java bytecode manipulation and analysis framework License: BSD URL: http://asm.ow2.org/ @@ -24,20 +24,17 @@ Source8: asm-all.pom # The source contains binary jars that cannot be verified for licensing and could be proprietary Source9: generate-tarball.sh -# Revert upstream change https://gitlab.ow2.org/asm/asm/-/commit/2a58bc9bcf2ea6eee03e973d1df4cf9312573c9d -# To restore some deprecations that were deleted and broke the API -Patch0: 0001-Revert-upstream-change-2a58bc9.patch - # Move a statement that can throw a CompileException inside a try-catch block # for that exception. Upstream has fixed this another way with a large code # refactor that seems inappropriate to backport. -Patch1: 0002-Catch-CompileException-in-test.patch +Patch1: 0001-Catch-CompileException-in-test.patch BuildRequires: maven-local BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) BuildRequires: mvn(org.apache.maven.plugins:maven-shade-plugin) BuildRequires: mvn(org.ow2:ow2:pom:) %if %{with junit5} +BuildRequires: mvn(org.codehaus.janino:commons-compiler) BuildRequires: mvn(org.codehaus.janino:janino) BuildRequires: mvn(org.junit.jupiter:junit-jupiter-api) BuildRequires: mvn(org.junit.jupiter:junit-jupiter-engine) @@ -82,11 +79,6 @@ cp -p %{SOURCE1} pom.xml # Insert poms into modules for pom in asm asm-analysis asm-commons asm-test asm-tree asm-util; do cp -p $RPM_SOURCE_DIR/${pom}-%{version}.pom $pom/pom.xml - # Fix junit5 configuration -%if %{with junit5} - %pom_add_dep org.junit.jupiter:junit-jupiter-engine:5.1.0:test $pom - %pom_add_plugin org.apache.maven.plugins:maven-surefire-plugin:2.22.0 $pom -%endif %if %{with osgi} if [ "$pom" != "asm-test" ] ; then # Make into OSGi bundles @@ -106,6 +98,16 @@ for pom in asm asm-analysis asm-commons asm-test asm-tree asm-util; do fi %endif done +# Fix junit5 configuration +%if %{with junit5} +%pom_add_dep org.junit.jupiter:junit-jupiter-engine:5.7.0:test asm asm-analysis asm-commons asm-tree asm-util +%pom_add_dep org.junit.jupiter:junit-jupiter-params:5.7.0:test asm asm-analysis asm-commons asm-tree asm-util +%pom_add_plugin org.apache.maven.plugins:maven-surefire-plugin:2.22.0 asm asm-analysis asm-commons asm-test asm-tree asm-util +%pom_add_dep org.ow2.asm:asm-test:%{version}:test asm asm-analysis asm-commons asm-tree asm-util +%pom_add_dep org.ow2.asm:asm-util:%{version}:test asm-commons +%pom_add_dep org.codehaus.janino:janino:2.7.8:test asm-util +%pom_add_dep org.codehaus.janino:commons-compiler:2.7.8:test asm-util +%endif # Disable tests that use unlicensed class files sed -i -e '/testToByteArray_computeMaxs_largeSubroutines/i@org.junit.jupiter.api.Disabled("missing class file")' \ @@ -122,9 +124,6 @@ rm asm-commons/src/test/java/org/objectweb/asm/commons/SerialVersionUidAdderTest mkdir -p asm-all sed 's/@VERSION@/%{version}/g' %{SOURCE8} > asm-all/pom.xml -# Remove invalid self-dependency -%pom_remove_dep org.ow2.asm:asm-test asm-test - # Compat aliases %mvn_alias :asm-all org.ow2.asm:asm-debug-all @@ -159,6 +158,9 @@ popd %license LICENSE.txt %changelog +* Fri Feb 19 2021 Mat Booth - 9.1-1 +- Update to latest upstream release + * Tue Jan 26 2021 Fedora Release Engineering - 8.0.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild diff --git a/sources b/sources index d461c08..501c2c8 100644 --- a/sources +++ b/sources @@ -1,7 +1,7 @@ -SHA512 (objectweb-asm-8.0.1.tar.gz) = 9ab01a55a2cc855bb2bd113a6923c62a0bdeb9311a5061508cf76e6bf1d96c37a9ff6d7af90c52eaf1cec102142c3dd7b6fa6fc0392ef2a96e687c639593f375 -SHA512 (asm-8.0.1.pom) = d2600348bd58f5f1a00a0dee7130088e7552be251c915922816952fc613377bd167762d3b986b67448ada28a84d8af668e8914ffcee4a446e0355e80bc7cbae8 -SHA512 (asm-analysis-8.0.1.pom) = 60b8806ad63a31a13f523f5b3410b2553292faebdc8fbc27c6d7d6237c17744a98ce5c7ac3a3defdbfe57400f914d66bfb4f3124b57c207fc6ebb4d559245550 -SHA512 (asm-commons-8.0.1.pom) = 1889eabf9f5758cf3b4a2cb8d1c6585d71be6fc9d3efbd53ef6f379ad422167398f9d1b393abdb8ffdc5420ab47f8d842fe112b8542a3d5245a80212c7219cb0 -SHA512 (asm-test-8.0.1.pom) = fd796c236b9b19facf828337e276d8933e1d08776dec96f8a370637b9706054eb8a9653b4c44fcecee5522ec2a24f9517a31a9858137adee5517b2824ebc1870 -SHA512 (asm-tree-8.0.1.pom) = 0116575ff309fee303ebe9c226c55993958aa0f84426aeb8fceb08c1f5a618f516114e556320e3d4a75e4b4fe575b05e9d774a988efb3609ebf92c0be0fd8b84 -SHA512 (asm-util-8.0.1.pom) = 66bde49a77c2ab636e0f6499b71a636a45d01cfd7d82da0d1c8377cee126b9194559f12de0ab4b10236553b761b24d8f645103ec051bd39dc1f6db50453ffd8f +SHA512 (objectweb-asm-9.1.tar.gz) = c5cff60acc0fc31842e397abff376e9061c5431fbfba8c0a24fd54ac654bb78382fdb30142b76cf87e87c43f89167ea36a2fd2320583de2b26a19e8abdde4772 +SHA512 (asm-9.1.pom) = 9bdc46e2ee6721d9228b2ae9518a118b38f9cb35cfbf2a0a885f439b6cd8705cd62d6502fb1d6bb83523a1fc0b5d18832a0e231dc9ed4e0ca7fbd83bbf595061 +SHA512 (asm-analysis-9.1.pom) = f94b222e6ea2c964bde42785e43d82dc8ac4d07ad1b8748c6ee0e66ca70a5e3ee2dce0338ada8928b93929436bfc3227d5e2f73573caad67dd57e1bd612c9eec +SHA512 (asm-commons-9.1.pom) = ea17ae1dc7f732cb87d0bab9d68035b088577ed32b6fca3c70386f56feebbdd467dabe997e27134f8ad7c2133187af763b9c3aad696cce2ba36cf68f3f09b760 +SHA512 (asm-test-9.1.pom) = 1d3c7f7310d9a98136578653b2ace151286683c50c9d377ae27694322ae681913e2ae318ee614c2ef815b0e7a1eb3a31cb37451f366cd6cc0575d4e137fc61cf +SHA512 (asm-tree-9.1.pom) = d6239bff2d055de63ec2e3c97bee0f07d1fe07113d662f7b75783ebbbf5a1c4435f9a265c27a81ab4bd15d990470ddc9949f1cf3fd9e2c0bedec9fbf65134eac +SHA512 (asm-util-9.1.pom) = da73aecae4d8c8fb0c1a216c66f38a445cea7b24f3e8898b142f4f1d16d42e34265d49495d721438df4231f33422d4c649d358db6d1123b2e1efefc51381df29