Skip to content

Commit fe37bcd

Browse files
Bug fix?
1 parent 97c4b74 commit fe37bcd

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

java/src/main/java/io/github/toolfactory/jvm/function/catalog/DefineHookClassFunction.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,18 +51,13 @@ public Abst(Map<Object, Object> context) {
5151

5252

5353
public static class ForJava7 extends Abst {
54-
protected UnsafeWrapper unsafeWrapper;
55-
protected PrivateLookupInMethodHandleSupplier privateLookupInMethodHandleSupplier;
5654
protected ObjectProvider functionProvider;
5755
protected Map<Object, Object> context;
5856

5957
public ForJava7(Map<Object, Object> context) throws NoSuchMethodException, IllegalAccessException, Throwable {
6058
super(context);
6159
this.context = context;
6260
functionProvider = ObjectProvider.get(context);
63-
unsafeWrapper = functionProvider.getOrBuildObject(UnsafeWrapper.class, context);
64-
privateLookupInMethodHandleSupplier =
65-
functionProvider.getOrBuildObject(PrivateLookupInMethodHandleSupplier.class, context);
6661
// defineHookClassMethodHandle = retrieveConsulter(
6762
// functionProvider.getOrBuildObject(ConsulterSupplier.class, context).get(),
6863
// functionProvider.getOrBuildObject(PrivateLookupInMethodHandleSupplier.class, context).get()
@@ -80,12 +75,13 @@ public ForJava7(Map<Object, Object> context) throws NoSuchMethodException, Illeg
8075

8176
@Override
8277
public Class<?> apply(Class<?> clientClass, byte[] byteCode) throws Throwable {
83-
MethodHandle privateLookupInMethodHandle = privateLookupInMethodHandleSupplier.get();
78+
MethodHandle privateLookupInMethodHandle = functionProvider.getOrBuildObject(PrivateLookupInMethodHandleSupplier.class, context).get();
79+
UnsafeWrapper unsafeWrapper = functionProvider.getOrBuildObject(UnsafeWrapper.class, context);
8480
return (Class<?>) ((MethodHandles.Lookup) privateLookupInMethodHandle.invokeWithArguments(
85-
functionProvider.getOrBuildObject(DeepConsulterSupplyFunction.class, context).apply(unsafeWrapper.getUnsafeClass()),
86-
unsafeWrapper.getUnsafeClass()
81+
functionProvider.getOrBuildObject(ConsulterSupplier.class, context).get(),
82+
functionProvider.getOrBuildObject(UnsafeWrapper.class, context).getUnsafeClass()
8783
)).findSpecial(
88-
unsafeWrapper.getUnsafeClass(),
84+
functionProvider.getOrBuildObject(UnsafeWrapper.class, context).getUnsafeClass(),
8985
"defineAnonymousClass",
9086
MethodType.methodType(Class.class, Class.class, byte[].class, Object[].class),
9187
unsafeWrapper.getUnsafeClass()
@@ -108,10 +104,11 @@ public ForJava9(Map<Object, Object> context) throws NoSuchMethodException, Illeg
108104

109105
@Override
110106
public Class<?> apply(Class<?> clientClass, byte[] byteCode) throws Throwable {
111-
MethodHandle privateLookupInMethodHandle = privateLookupInMethodHandleSupplier.get();
107+
MethodHandle privateLookupInMethodHandle = functionProvider.getOrBuildObject(PrivateLookupInMethodHandleSupplier.class, context).get();
108+
UnsafeWrapper unsafeWrapper = functionProvider.getOrBuildObject(UnsafeWrapper.class, context);
112109
return (Class<?>) ((MethodHandles.Lookup) privateLookupInMethodHandle.invokeWithArguments(
113110
unsafeWrapper.getUnsafeClass(),
114-
functionProvider.getOrBuildObject(DeepConsulterSupplyFunction.class, context).apply(unsafeWrapper.getUnsafeClass())
111+
functionProvider.getOrBuildObject(ConsulterSupplier.class, context).get()
115112
)).findSpecial(
116113
unsafeWrapper.getUnsafeClass(),
117114
"defineAnonymousClass",

0 commit comments

Comments
 (0)