summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRemi Forax <forax@univ-mlv.fr>2022-06-19 11:02:41 +0000
committerRemi Forax <forax@univ-mlv.fr>2022-06-19 11:02:41 +0000
commit78701b3db8b182a974f64994c035309b1b9928d2 (patch)
treecf67be3eb9e42f728f2839cc4a8db5e923e03167
parentbc2420aacc7f73fed6b74b2631ee2235c0c36a37 (diff)
parent8b7090dc7fc280aeff270473658766179cb2024b (diff)
downloadow2-asm-78701b3db8b182a974f64994c035309b1b9928d2.tar.gz
Merge branch 'support-jdk10' into 'master'
recognize Java 20 version (64) See merge request asm/asm!352
-rw-r--r--asm-util/src/main/java/org/objectweb/asm/util/ASMifier.java1
-rw-r--r--asm/src/main/java/org/objectweb/asm/ClassReader.java2
-rw-r--r--asm/src/main/java/org/objectweb/asm/Opcodes.java1
-rw-r--r--asm/src/test/java/org/objectweb/asm/ConstantsTest.java1
4 files changed, 4 insertions, 1 deletions
diff --git a/asm-util/src/main/java/org/objectweb/asm/util/ASMifier.java b/asm-util/src/main/java/org/objectweb/asm/util/ASMifier.java
index 51134811..2d1966a5 100644
--- a/asm-util/src/main/java/org/objectweb/asm/util/ASMifier.java
+++ b/asm-util/src/main/java/org/objectweb/asm/util/ASMifier.java
@@ -109,6 +109,7 @@ public class ASMifier extends Printer {
classVersions.put(Opcodes.V17, "V17");
classVersions.put(Opcodes.V18, "V18");
classVersions.put(Opcodes.V19, "V19");
+ classVersions.put(Opcodes.V20, "V20");
CLASS_VERSIONS = Collections.unmodifiableMap(classVersions);
}
diff --git a/asm/src/main/java/org/objectweb/asm/ClassReader.java b/asm/src/main/java/org/objectweb/asm/ClassReader.java
index 413f2a1a..2a1139c3 100644
--- a/asm/src/main/java/org/objectweb/asm/ClassReader.java
+++ b/asm/src/main/java/org/objectweb/asm/ClassReader.java
@@ -194,7 +194,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.V19) {
+ if (checkClassVersion && readShort(classFileOffset + 6) > Opcodes.V20) {
throw new IllegalArgumentException(
"Unsupported class file major version " + readShort(classFileOffset + 6));
}
diff --git a/asm/src/main/java/org/objectweb/asm/Opcodes.java b/asm/src/main/java/org/objectweb/asm/Opcodes.java
index c4d1679a..4a85a445 100644
--- a/asm/src/main/java/org/objectweb/asm/Opcodes.java
+++ b/asm/src/main/java/org/objectweb/asm/Opcodes.java
@@ -285,6 +285,7 @@ public interface Opcodes {
int V17 = 0 << 16 | 61;
int V18 = 0 << 16 | 62;
int V19 = 0 << 16 | 63;
+ int V20 = 0 << 16 | 64;
/**
* Version flag indicating that the class is using 'preview' features.
diff --git a/asm/src/test/java/org/objectweb/asm/ConstantsTest.java b/asm/src/test/java/org/objectweb/asm/ConstantsTest.java
index 8c220861..f2ca92a2 100644
--- a/asm/src/test/java/org/objectweb/asm/ConstantsTest.java
+++ b/asm/src/test/java/org/objectweb/asm/ConstantsTest.java
@@ -252,6 +252,7 @@ class ConstantsTest {
case "V17":
case "V18":
case "V19":
+ case "V20":
return ConstantType.CLASS_VERSION;
case "ACC_PUBLIC":
case "ACC_PRIVATE":