From 6990504d17d0daafab1603d7fa10ddf0385acdea Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Fri, 5 Jul 2019 16:24:45 +0200 Subject: [PATCH] Upgrade to ASM 7.2 Closes gh-23156 --- .../src/main/java/org/springframework/asm/ClassReader.java | 2 +- .../src/main/java/org/springframework/asm/MethodWriter.java | 3 +++ spring-core/src/main/java/org/springframework/asm/Opcodes.java | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/spring-core/src/main/java/org/springframework/asm/ClassReader.java b/spring-core/src/main/java/org/springframework/asm/ClassReader.java index 738cd2aa495..f656d179a48 100644 --- a/spring-core/src/main/java/org/springframework/asm/ClassReader.java +++ b/spring-core/src/main/java/org/springframework/asm/ClassReader.java @@ -190,7 +190,7 @@ public class ClassReader { this.b = classFileBuffer; // Check the class' major_version. This field is after the magic and minor_version fields, which // use 4 and 2 bytes respectively. - if (checkClassVersion && readShort(classFileOffset + 6) > Opcodes.V13) { + if (checkClassVersion && readShort(classFileOffset + 6) > Opcodes.V14) { throw new IllegalArgumentException( "Unsupported class file major version " + readShort(classFileOffset + 6)); } diff --git a/spring-core/src/main/java/org/springframework/asm/MethodWriter.java b/spring-core/src/main/java/org/springframework/asm/MethodWriter.java index bc16e433a19..39ab255be60 100644 --- a/spring-core/src/main/java/org/springframework/asm/MethodWriter.java +++ b/spring-core/src/main/java/org/springframework/asm/MethodWriter.java @@ -775,6 +775,9 @@ final class MethodWriter extends MethodVisitor { } visitFrameEnd(); } else { + if (symbolTable.getMajorVersion() < Opcodes.V1_6) { + throw new IllegalArgumentException("Class versions V1_5 or less must use F_NEW frames."); + } int offsetDelta; if (stackMapTableEntries == null) { stackMapTableEntries = new ByteVector(); diff --git a/spring-core/src/main/java/org/springframework/asm/Opcodes.java b/spring-core/src/main/java/org/springframework/asm/Opcodes.java index 1cbfe9d8df7..90bd930fcc3 100644 --- a/spring-core/src/main/java/org/springframework/asm/Opcodes.java +++ b/spring-core/src/main/java/org/springframework/asm/Opcodes.java @@ -269,6 +269,7 @@ public interface Opcodes { int V11 = 0 << 16 | 55; int V12 = 0 << 16 | 56; int V13 = 0 << 16 | 57; + int V14 = 0 << 16 | 58; /** * Version flag indicating that the class is using 'preview' features.