simplify the ignored packages list

This commit is contained in:
Haowei Wen 2022-05-03 01:14:55 +08:00
parent 45ca1e0f84
commit dc35c04474
3 changed files with 9 additions and 39 deletions

View file

@ -261,7 +261,7 @@ public final class AuthlibInjector {
URLProcessor urlProcessor = new URLProcessor(createFilters(config), new DefaultURLRedirector(config));
ClassTransformer transformer = new ClassTransformer();
transformer.ignores.addAll(Config.ignoredPackages);
transformer.setIgnores(Config.ignoredPackages);
if (Config.dumpClass) {
transformer.listeners.add(new DumpClassListener(Paths.get("").toAbsolutePath()));

View file

@ -107,39 +107,6 @@ public final class Config {
"com.sun.",
"sun.",
"net.java.",
"com.google.",
"com.ibm.",
"com.jcraft.jogg.",
"com.jcraft.jorbis.",
"com.oracle.",
"com.paulscode.",
"org.GNOME.",
"org.apache.",
"org.graalvm.",
"org.jcp.",
"org.json.",
"org.lwjgl.",
"com.mojang.blaze3d.",
"com.mojang.brigadier.",
"com.mojang.datafixers.",
"com.mojang.serialization.",
"org.objectweb.asm.",
"org.slf4j.",
"org.w3c.",
"org.xml.",
"org.yaml.snakeyaml.",
"gnu.trove.",
"io.netty.",
"it.unimi.dsi.fastutil.",
"javassist.",
"jline.",
"joptsimple.",
"oracle.",
"oshi.",
"paulscode.",
};
private static void initIgnoredPackages() {

View file

@ -27,11 +27,10 @@ import java.lang.instrument.ClassFileTransformer;
import java.lang.instrument.IllegalClassFormatException;
import java.security.ProtectionDomain;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
@ -43,8 +42,8 @@ public class ClassTransformer implements ClassFileTransformer {
public final List<TransformUnit> units = new CopyOnWriteArrayList<>();
public final List<ClassLoadingListener> listeners = new CopyOnWriteArrayList<>();
public final Set<String> ignores = Collections.newSetFromMap(new ConcurrentHashMap<>());
public final PerformanceMetrics performanceMetrics = new PerformanceMetrics();
private String[] ignores = new String[0];
private class TransformHandle {
@ -224,8 +223,8 @@ public class ClassTransformer implements ClassFileTransformer {
long t0 = System.nanoTime();
String className = internalClassName.replace('/', '.');
for (String prefix : ignores) {
if (className.startsWith(prefix)) {
for (String ignore : ignores) {
if (className.startsWith(ignore)) {
listeners.forEach(it -> it.onClassLoading(loader, className, classfileBuffer, Collections.emptyList()));
long t1 = System.nanoTime();
@ -281,4 +280,8 @@ public class ClassTransformer implements ClassFileTransformer {
}
return constants;
}
public void setIgnores(Collection<String> newIgnores) {
ignores = newIgnores.toArray(ignores);
}
}