Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-16 11:30:06 +01:00
61709368af
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing
CraftBukkit Changes:
dcb43ef8
MC-136886: locate command loads chunks without needing to.
Spigot Changes:
f823ac54 Rebuild patches
56 Zeilen
2.1 KiB
Diff
56 Zeilen
2.1 KiB
Diff
From e60758f4757a625ff2226db56c8c46b185fbbd77 Mon Sep 17 00:00:00 2001
|
|
From: Kyle Wood <demonwav@gmail.com>
|
|
Date: Sun, 23 Sep 2018 12:52:21 -0500
|
|
Subject: [PATCH] Enable experimental ASM support for Java 11 plugins
|
|
|
|
JEP 181 brings a new bytecode format for nest mates. ASM API 7 supports
|
|
this, but API 7 is still experimental. Attempting to load a Java 11
|
|
class that contains nest mates will cause an
|
|
UnsupportedOperationException, as API 6 can't handle them. This doesn't
|
|
really require any changes to the rest of the code, since this is just
|
|
related to ASM's visitor.
|
|
|
|
We want to use the stable API 6 for all other plugins, only using the
|
|
experimental API when required, so we check the class version first.
|
|
|
|
This should be removed as soon as ASM API 7 is stable.
|
|
|
|
diff --git a/pom.xml b/pom.xml
|
|
index 1e7d2b5506..6d8b27e927 100644
|
|
--- a/pom.xml
|
|
+++ b/pom.xml
|
|
@@ -83,7 +83,7 @@
|
|
<dependency>
|
|
<groupId>org.ow2.asm</groupId>
|
|
<artifactId>asm</artifactId>
|
|
- <version>6.2</version>
|
|
+ <version>6.2.1</version>
|
|
<scope>compile</scope>
|
|
</dependency>
|
|
<dependency>
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
|
|
index d172a1aebc..7f2a73d6f8 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
|
|
@@ -127,7 +127,16 @@ public class Commodore
|
|
ClassReader cr = new ClassReader( b );
|
|
ClassWriter cw = new ClassWriter( cr, 0 );
|
|
|
|
- cr.accept( new ClassVisitor( Opcodes.ASM6, cw )
|
|
+ // Paper start - experimental support of Java 11
|
|
+ final int apiVersion;
|
|
+ if ( cr.readShort(6) == Opcodes.V11 ) {
|
|
+ apiVersion = Opcodes.ASM7_EXPERIMENTAL;
|
|
+ } else {
|
|
+ apiVersion = Opcodes.ASM6;
|
|
+ }
|
|
+
|
|
+ cr.accept( new ClassVisitor( apiVersion, cw )
|
|
+ // Paper end - experimental support of Java 11
|
|
{
|
|
@Override
|
|
public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions)
|
|
--
|
|
2.19.0
|
|
|