diff --git a/src/main/java/org/embeddedt/modernfix/blockstate/BlockStateCacheHandler.java b/src/main/java/org/embeddedt/modernfix/blockstate/BlockStateCacheHandler.java index 2f31ba5c..0919dd1c 100644 --- a/src/main/java/org/embeddedt/modernfix/blockstate/BlockStateCacheHandler.java +++ b/src/main/java/org/embeddedt/modernfix/blockstate/BlockStateCacheHandler.java @@ -41,6 +41,8 @@ public class BlockStateCacheHandler { else handleStateCache(state); } + + @SuppressWarnings("deprecation") public static void rebuildParallel(boolean force) { /* Run some special sauce for Refined Storage since it has very slow collision shapes */ Stopwatch realtimeStopwatch = Stopwatch.createStarted(); diff --git a/src/main/java/org/embeddedt/modernfix/core/ModernFixMixinPlugin.java b/src/main/java/org/embeddedt/modernfix/core/ModernFixMixinPlugin.java index 9a957517..c9157924 100644 --- a/src/main/java/org/embeddedt/modernfix/core/ModernFixMixinPlugin.java +++ b/src/main/java/org/embeddedt/modernfix/core/ModernFixMixinPlugin.java @@ -10,11 +10,8 @@ import org.embeddedt.modernfix.classloading.ModernFixResourceFinder; import org.embeddedt.modernfix.core.config.ModernFixEarlyConfig; import org.embeddedt.modernfix.core.config.Option; import org.objectweb.asm.tree.ClassNode; -import org.spongepowered.asm.mixin.MixinEnvironment; import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; import org.spongepowered.asm.mixin.extensibility.IMixinInfo; -import org.spongepowered.asm.mixin.injection.invoke.arg.ArgsClassGenerator; -import sun.misc.Unsafe; import java.io.File; import java.io.IOException; @@ -32,18 +29,6 @@ public class ModernFixMixinPlugin implements IMixinConfigPlugin { private final Logger logger = LogManager.getLogger("ModernFix"); public static ModernFixEarlyConfig config = null; - private static Unsafe unsafe; - - static{ - try{ - final Field unsafeField = Unsafe.class.getDeclaredField("theUnsafe"); - unsafeField.setAccessible(true); - unsafe = (Unsafe) unsafeField.get(null); - }catch(Exception ex){ - ex.printStackTrace(); - } - } - public ModernFixMixinPlugin() { try { config = ModernFixEarlyConfig.load(new File("./config/modernfix-mixins.properties")); diff --git a/src/main/java/org/embeddedt/modernfix/mixin/perf/parallel_blockstate_cache_rebuild/ShapeCacheMixin.java b/src/main/java/org/embeddedt/modernfix/mixin/perf/parallel_blockstate_cache_rebuild/ShapeCacheMixin.java index 0ae932b7..ad57d918 100644 --- a/src/main/java/org/embeddedt/modernfix/mixin/perf/parallel_blockstate_cache_rebuild/ShapeCacheMixin.java +++ b/src/main/java/org/embeddedt/modernfix/mixin/perf/parallel_blockstate_cache_rebuild/ShapeCacheMixin.java @@ -6,6 +6,7 @@ import net.minecraft.util.math.shapes.VoxelShape; import org.embeddedt.modernfix.ModernFix; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Mutable; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -16,7 +17,9 @@ import java.util.concurrent.ConcurrentHashMap; @Mixin(ShapeCache.class) public class ShapeCacheMixin { - @Shadow private static Map CACHE; + @Final + @Mutable + @Shadow(remap = false) private static Map CACHE; @Inject(method = "", at = @At("TAIL")) private static void useConcurrentMap(CallbackInfo ci) { diff --git a/src/main/java/org/embeddedt/modernfix/mixin/perf/parallelize_model_loading/OBJLoaderMixin.java b/src/main/java/org/embeddedt/modernfix/mixin/perf/parallelize_model_loading/OBJLoaderMixin.java index aa1806f1..b2ad2c54 100644 --- a/src/main/java/org/embeddedt/modernfix/mixin/perf/parallelize_model_loading/OBJLoaderMixin.java +++ b/src/main/java/org/embeddedt/modernfix/mixin/perf/parallelize_model_loading/OBJLoaderMixin.java @@ -7,6 +7,7 @@ import net.minecraftforge.client.model.obj.OBJModel; import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Mutable; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; @@ -16,9 +17,13 @@ import java.util.concurrent.ConcurrentHashMap; @Mixin(OBJLoader.class) public class OBJLoaderMixin { - @Shadow private Map materialCache; + @Final + @Mutable + @Shadow(remap = false) private Map materialCache; - @Shadow private Map modelCache; + @Final + @Mutable + @Shadow(remap = false) private Map modelCache; @Redirect(method = "", at = @At(value = "FIELD", opcode = Opcodes.PUTFIELD, target = "Lnet/minecraftforge/client/model/obj/OBJLoader;materialCache:Ljava/util/Map;", remap = false)) private void useConcMap1(OBJLoader instance, Map value) { diff --git a/src/main/java/org/embeddedt/modernfix/mixin/perf/scan_cache/ScannerMixin.java b/src/main/java/org/embeddedt/modernfix/mixin/perf/scan_cache/ScannerMixin.java index 8029a567..b49602c7 100644 --- a/src/main/java/org/embeddedt/modernfix/mixin/perf/scan_cache/ScannerMixin.java +++ b/src/main/java/org/embeddedt/modernfix/mixin/perf/scan_cache/ScannerMixin.java @@ -13,7 +13,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(Scanner.class) public class ScannerMixin { - @Shadow @Final private ModFile fileToScan; + @Shadow(remap = false) @Final private ModFile fileToScan; @Inject(method = "scan", at = @At(value = "HEAD"), cancellable = true, remap = false) private void useCachedScanResults(CallbackInfoReturnable cir) { diff --git a/src/main/java/org/embeddedt/modernfix/mixin/perf/sync_executor_sleep/SyncExecutorMixin.java b/src/main/java/org/embeddedt/modernfix/mixin/perf/sync_executor_sleep/SyncExecutorMixin.java index 5d092e1d..3879a442 100644 --- a/src/main/java/org/embeddedt/modernfix/mixin/perf/sync_executor_sleep/SyncExecutorMixin.java +++ b/src/main/java/org/embeddedt/modernfix/mixin/perf/sync_executor_sleep/SyncExecutorMixin.java @@ -14,7 +14,7 @@ import java.util.concurrent.locks.LockSupport; @Mixin(targets = "net/minecraftforge/fml/ModWorkManager$SyncExecutor") public class SyncExecutorMixin { - @Shadow private ConcurrentLinkedDeque tasks; + @Shadow(remap = false) private ConcurrentLinkedDeque tasks; private static final long PARK_TIME = TimeUnit.MILLISECONDS.toNanos(50); /** * Currently FML spins in driveOne while waiting for the modloading workers. We can improve this