mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-06 10:44:39 +01:00
16846b782c
Upstream has released updates that appears to apply and compile correctly. This update has been tested to ensure that World Conversion still occurs correctly. Bukkit Changes: 0812ce2c SPIGOT-4397: isChunkGenerated API CraftBukkit Changes:4824655c
SPIGOT-4398: Upgrade to ASM 6.2.1 for better Java 11 supporteea43870
MC-134115: Fix issues converting tile entities1a7f2d10
SPIGOT-4397: isChunkGenerated API40aed54d
SPIGOT-4396: Improve vehicle movement Spigot Changes: f6a273b1 Rebuild patches
40 lines
No EOL
1.7 KiB
Diff
40 lines
No EOL
1.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Kyle Wood <kyle@denwav.dev>
|
|
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/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
|
|
@@ -0,0 +0,0 @@ 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)
|
|
--
|