From 46eedbedafdb0040c37884982d4c775ce277fb7b Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 20 Oct 2021 10:22:14 +0100 Subject: gentoo resync : 20.10.2021 --- .../files/commons-compress-1.21-asm7+.patch | 164 +++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 dev-java/commons-compress/files/commons-compress-1.21-asm7+.patch (limited to 'dev-java/commons-compress/files/commons-compress-1.21-asm7+.patch') diff --git a/dev-java/commons-compress/files/commons-compress-1.21-asm7+.patch b/dev-java/commons-compress/files/commons-compress-1.21-asm7+.patch new file mode 100644 index 000000000000..e20fa89787dc --- /dev/null +++ b/dev-java/commons-compress/files/commons-compress-1.21-asm7+.patch @@ -0,0 +1,164 @@ +From 7709c8be97147e8d5c5d7fa42d076504931ba9e0 Mon Sep 17 00:00:00 2001 +From: Stephan Blecher +Date: Tue, 10 Aug 2021 14:39:21 +0200 +Subject: [PATCH] COMPRESS-582: update harmony to ASM >= 7.0 + +--- + pom.xml | 5 +-- + .../harmony/pack200/Pack200ClassReader.java | 2 +- + .../compress/harmony/pack200/Segment.java | 35 +++++++++++++++---- + .../harmony/pack200/tests/ArchiveTest.java | 0 + 4 files changed, 32 insertions(+), 10 deletions(-) + mode change 100644 => 100755 src/test/java/org/apache/commons/compress/harmony/pack200/tests/ArchiveTest.java + +diff --git a/pom.xml b/pom.xml +index 28f50f06a..1c6844d24 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -78,6 +78,7 @@ Brotli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, arj. + 0.8.7 + 0.15.3 + 3.3.0 ++ 7.0 + + + +@@ -119,9 +120,9 @@ Brotli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, arj. + + + +- asm ++ org.ow2.asm + asm +- 3.2 ++ ${asm.version} + true + + +diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200ClassReader.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200ClassReader.java +index 2a017bc01..7022b7b30 100644 +--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200ClassReader.java ++++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Pack200ClassReader.java +@@ -40,7 +40,7 @@ public int readUnsignedShort(final int index) { + // Doing this to check whether last load-constant instruction was ldc (18) or ldc_w (19) + // TODO: Assess whether this impacts on performance + final int unsignedShort = super.readUnsignedShort(index); +- if (b[index - 1] == 19) { ++ if (index > 0 && b[index - 1] == 19) { + lastUnsignedShort = unsignedShort; + } else { + lastUnsignedShort = Short.MIN_VALUE; +diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java b/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java +index 0609aa4c2..1bc73a018 100644 +--- a/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java ++++ b/src/main/java/org/apache/commons/compress/harmony/pack200/Segment.java +@@ -32,12 +32,20 @@ + import org.objectweb.asm.FieldVisitor; + import org.objectweb.asm.Label; + import org.objectweb.asm.MethodVisitor; ++import org.objectweb.asm.Opcodes; + import org.objectweb.asm.Type; + ++ + /** + * A Pack200 archive consists of one or more Segments. + */ +-public class Segment implements ClassVisitor { ++public class Segment extends ClassVisitor { ++ ++ public static int ASM_API = Opcodes.ASM4; /* see https://asm.ow2.io/javadoc/org/objectweb/asm/Opcodes.html#ASM4 */ ++ ++ public Segment() { ++ super(ASM_API); ++ } + + private SegmentHeader segmentHeader; + private CpBands cpBands; +@@ -255,8 +263,12 @@ public void visitEnd() { + * + * It delegates to BcBands for bytecode related visits and to ClassBands for everything else. + */ +- public class SegmentMethodVisitor implements MethodVisitor { +- ++ public class SegmentMethodVisitor extends MethodVisitor { ++ ++ public SegmentMethodVisitor() { ++ super(ASM_API); ++ } ++ + @Override + public AnnotationVisitor visitAnnotation(final String desc, final boolean visible) { + return new SegmentAnnotationVisitor(MetadataBandGroup.CONTEXT_METHOD, desc, visible); +@@ -427,7 +439,7 @@ public ClassBands getClassBands() { + /** + * SegmentAnnotationVisitor implements AnnotationVisitor to visit Annotations found in a class file. + */ +- public class SegmentAnnotationVisitor implements AnnotationVisitor { ++ public class SegmentAnnotationVisitor extends AnnotationVisitor { + + private int context = -1; + private int parameter = -1; +@@ -443,17 +455,20 @@ public ClassBands getClassBands() { + private final List nestPairN = new ArrayList(); + + public SegmentAnnotationVisitor(final int context, final String desc, final boolean visible) { ++ super(ASM_API); + this.context = context; + this.desc = desc; + this.visible = visible; + } + + public SegmentAnnotationVisitor(final int context) { ++ super(ASM_API); + this.context = context; + } + + public SegmentAnnotationVisitor(final int context, final int parameter, final String desc, + final boolean visible) { ++ super(ASM_API); + this.context = context; + this.parameter = parameter; + this.desc = desc; +@@ -478,7 +493,7 @@ public AnnotationVisitor visitAnnotation(String name, final String desc) { + nameRU.add(name); + nestTypeRS.add(desc); + nestPairN.add(Integer.valueOf(0)); +- return new AnnotationVisitor() { ++ return new AnnotationVisitor(context, av) { + @Override + public void visit(final String name, final Object value) { + final Integer numPairs = (Integer) nestPairN.remove(nestPairN.size() - 1); +@@ -552,7 +567,7 @@ public void visitEnum(String name, final String desc, final String value) { + } + } + +- public class ArrayVisitor implements AnnotationVisitor { ++ public class ArrayVisitor extends AnnotationVisitor { + + private final int indexInCaseArrayN; + private final List caseArrayN; +@@ -561,6 +576,8 @@ public void visitEnum(String name, final String desc, final String value) { + private final List T; + + public ArrayVisitor(final List caseArrayN, final List T, final List nameRU, final List values) { ++ super(ASM_API); ++ + this.caseArrayN = caseArrayN; + this.T = T; + this.nameRU = nameRU; +@@ -612,7 +629,11 @@ public void visitEnum(final String name, final String desc, final String value) + * SegmentFieldVisitor implements FieldVisitor to visit the metadata relating to fields in a class + * file. + */ +- public class SegmentFieldVisitor implements FieldVisitor { ++ public class SegmentFieldVisitor extends FieldVisitor { ++ ++ public SegmentFieldVisitor() { ++ super(ASM_API); ++ } + + @Override + public AnnotationVisitor visitAnnotation(final String desc, final boolean visible) { +diff --git a/src/test/java/org/apache/commons/compress/harmony/pack200/tests/ArchiveTest.java b/src/test/java/org/apache/commons/compress/harmony/pack200/tests/ArchiveTest.java +old mode 100644 +new mode 100755 -- cgit v1.2.3