Skip to content

Commit b84403a

Browse files
committed
mixin: Update to Mixin 0.8.7
1 parent 1685fd1 commit b84403a

File tree

4 files changed

+47
-5
lines changed

4 files changed

+47
-5
lines changed

mixin/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ plugins {
1111
id("essential.build-logic")
1212
}
1313

14-
val patchesVersion = "0.1.0"
15-
val mixinVersion = "0.8.4"
14+
val patchesVersion = "0.2.0"
15+
val mixinVersion = "0.8.7"
1616
val asmVersion = "5.2"
1717

1818
version = "$patchesVersion+mixin.$mixinVersion"

mixin/src/main/java/gg/essential/mixincompat/cleanroom/MixinConfigCompat.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import gg.essential.CompatShadow;
55
import org.spongepowered.asm.launch.GlobalProperties;
66
import org.spongepowered.asm.mixin.MixinEnvironment;
7+
import org.spongepowered.asm.mixin.extensibility.IMixinConfigSource;
78
import org.spongepowered.asm.mixin.transformer.Config;
89

910
import java.util.Collections;
@@ -13,14 +14,14 @@
1314
public class MixinConfigCompat {
1415
// See GlobalPropertiesKeysCompat
1516
// https://github.com/CleanroomMC/MixinBooter-UniMix/blob/9d4b487ed32501137645cdf0da484b076f0bfaf4/src/main/java/org/spongepowered/asm/mixin/transformer/MixinConfig.java#L1400
16-
static Config create(String configFile, MixinEnvironment outer) {
17+
static Config create(String configFile, MixinEnvironment outer, IMixinConfigSource source) {
1718
Set<String> disabledMixinConfigs = GlobalProperties.get(GlobalPropertiesKeysCompat.CLEANROOM_DISABLE_MIXIN_CONFIGS, Collections.emptySet());
1819
if (disabledMixinConfigs.contains(configFile)) {
1920
return null;
2021
}
21-
return create$original(configFile, outer);
22+
return create$original(configFile, outer, source);
2223
}
2324

2425
@CompatShadow(original = "create")
25-
static Config create$original(String configFile, MixinEnvironment outer) { throw new LinkageError(); }
26+
static Config create$original(String configFile, MixinEnvironment outer, IMixinConfigSource source) { throw new LinkageError(); }
2627
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package gg.essential.mixincompat.fixes;
2+
3+
import gg.essential.CompatMixin;
4+
import gg.essential.CompatShadow;
5+
import org.spongepowered.asm.mixin.Mixins;
6+
7+
@CompatMixin(Mixins.class)
8+
public class FixNPE_PR678 {
9+
//
10+
// Fixes regression in 0.8.6, see https://github.com/SpongePowered/Mixin/pull/678
11+
// Planned to be fixed upstream in 0.8.8.
12+
//
13+
public static void addConfiguration(String configFile) {
14+
Mixins.addConfiguration(configFile, null);
15+
}
16+
@CompatShadow(original = "addConfiguration")
17+
public static void addConfiguration$broken(String configFile) { throw new LinkageError(); }
18+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package gg.essential.mixincompat.fixes;
2+
3+
import gg.essential.CompatMixin;
4+
import gg.essential.CompatShadow;
5+
import org.spongepowered.asm.mixin.MixinEnvironment;
6+
import org.spongepowered.asm.mixin.Mixins;
7+
8+
@CompatMixin(MixinEnvironment.Option.class)
9+
public class ReEnableClassReaderExpandedFrames {
10+
//
11+
// Re-enables EXPAND_FRAMES by default because different Locals are generated without it, breaking existing mixins.
12+
// See https://github.com/SpongePowered/Mixin/issues/671
13+
//
14+
private boolean getLocalBooleanValue(boolean defaultValue) {
15+
//noinspection ConstantValue
16+
if ((Object) this == MixinEnvironment.Option.CLASSREADER_EXPAND_FRAMES) {
17+
defaultValue = true;
18+
}
19+
return getLocalBooleanValue$org(defaultValue);
20+
}
21+
@CompatShadow(original = "getLocalBooleanValue")
22+
private boolean getLocalBooleanValue$org(boolean defaultValue) { throw new LinkageError(); }
23+
}

0 commit comments

Comments
 (0)