Injected class bytes are java8 compat. Added more detailed comments

This commit is contained in:
Robinson 2023-01-02 02:04:53 +01:00
parent 60956481f4
commit 9238065445
No known key found for this signature in database
GPG Key ID: 8E7DB78588BD6F5C

View File

@ -147,6 +147,8 @@ public class ClassUtils {
// we do not have a dependency on javassist simply because we ALREADY know what the generated class bytes are (so there's no need)
// try {
// ClassPool pool = ClassPool.getDefault();
// CtClass dynamicClass = pool.makeClass("java.lang.ClassLoaderAccessor");
// CtMethod method = CtNewMethod.make("public static Class findLoadedClass(ClassLoader classLoader, String className) { " +
// "return classLoader.findLoadedClass(className);" +
@ -155,9 +157,13 @@ public class ClassUtils {
// dynamicClass.setModifiers(dynamicClass.getModifiers() & ~Modifier.STATIC);
//
// final byte[] classLoaderAccessorBytes = dynamicClass.toBytecode();
// Sys.printArray(classLoaderAccessorBytes);
// } catch (Exception e) {
// e.printStackTrace();
// }
//
byte[] classLoaderAccessorBytes = {
-54,-2,-70,-66,0,0,0,55,0,19,1,0,29,106,97,118,97,47,108,97,110,103,47,67,108,97,115,115,76,111,97,100,101,114,65,99,99,101,115,115,111,
-54,-2,-70,-66,0,0,0,52,0,19,1,0,29,106,97,118,97,47,108,97,110,103,47,67,108,97,115,115,76,111,97,100,101,114,65,99,99,101,115,115,111,
114,7,0,1,1,0,16,106,97,118,97,47,108,97,110,103,47,79,98,106,101,99,116,7,0,3,1,0,10,83,111,117,114,99,101,70,105,108,101,1,
0,24,67,108,97,115,115,76,111,97,100,101,114,65,99,99,101,115,115,111,114,46,106,97,118,97,1,0,15,102,105,110,100,76,111,97,100,101,100,67,
108,97,115,115,1,0,60,40,76,106,97,118,97,47,108,97,110,103,47,67,108,97,115,115,76,111,97,100,101,114,59,76,106,97,118,97,47,108,97,110,
@ -175,6 +181,8 @@ public class ClassUtils {
}
// try {
// ClassPool pool = ClassPool.getDefault();
// CtClass classFixer = pool.get("dorkbox.jna.ClassLoaderAccessory");
// CtMethod ctMethod = classFixer.getDeclaredMethod("findLoadedClass");
// ctMethod.setBody("{" +
@ -185,7 +193,10 @@ public class ClassUtils {
// ctMethod.getMethodInfo().rebuildStackMapForME(pool);
//
// final byte[] classFixerBytes = classFixer.toBytecode();
// Sys.printArray(classFixerBytes);
// } catch (Exception e) {
// e.printStackTrace();
// }
byte[] classFixerBytes = {
-54,-2,-70,-66,0,0,0,52,0,22,1,0,32,100,111,114,107,98,111,120,47,106,110,97,47,67,108,97,115,115,76,111,97,100,101,114,65,99,99,101,115,
115,111,114,121,7,0,1,1,0,16,106,97,118,97,47,108,97,110,103,47,79,98,106,101,99,116,7,0,3,1,0,6,60,105,110,105,116,62,1,0,