Skip to content

Commit

Permalink
Add property to enable dumping of loaded class details
Browse files Browse the repository at this point in the history
  • Loading branch information
LunNova committed Jan 18, 2017
1 parent 0694acf commit efd847c
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion src/main/java/me/nallar/modpatcher/LaunchClassLoaderUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public enum LaunchClassLoaderUtil {
private static final String SPONGEPOWERED_MIXIN_TRANSFORMER_NAME = "org.spongepowered.asm.mixin.transformer.MixinTransformer$Proxy";
private static final String DEOBF_TRANSFORMER_NAME = "net.minecraftforge.fml.common.asm.transformers.DeobfuscationTransformer";
private static final boolean TEMPORARY_ALLOW_PATCHING_ALL_CLASSES = Boolean.parseBoolean(System.getProperty("nallar.LaunchClassLoaderUtil.allowPatchingAllClasses", "false"));
private static final boolean DUMP_JAVASSIST_LOADED_CLASSES = Boolean.parseBoolean(System.getProperty("nallar.LaunchClassLoaderUtil.dumpJavassistLoadedClasses", "false"));
private static final List<String> DEOBF_TRANSFORMER_NAMES = Arrays.asList(
DEOBF_TRANSFORMER_NAME,
SPONGEPOWERED_MIXIN_TRANSFORMER_NAME
Expand Down Expand Up @@ -151,6 +152,9 @@ public static boolean excluded(String name) {
}

public static boolean allowedForSrg(String name) {
if (name.startsWith("javax.") || name.startsWith("java."))
return false;

if (TEMPORARY_ALLOW_PATCHING_ALL_CLASSES || name.startsWith("net.minecraft") || name.startsWith("nallar.") || name.startsWith("me.nallar."))
return true;

Expand Down Expand Up @@ -228,7 +232,7 @@ public static byte[] getSrgBytes(String name) {
return null;
}

byte[] cached = cachedSrgClasses.get(transformedName);
byte[] cached = cachedSrgClasses.remove(transformedName);
if (cached != null) {
return cached;
}
Expand All @@ -247,6 +251,10 @@ public static void cacheSrgBytes(String transformedName, byte[] bytes) {
return;
}

if (DUMP_JAVASSIST_LOADED_CLASSES) {
PatcherLog.warn("Cached SRG bytes for " + transformedName, new Throwable());
}

byte[] old = cachedSrgClasses.put(transformedName, bytes);
if (old != null && !Arrays.equals(bytes, old)) {
ModPatcherTransformer.pool.dropCache(transformedName);
Expand Down

0 comments on commit efd847c

Please sign in to comment.