Stop clearing fields/methods on mixin classes
This seems to break generating the needed bridge access$xxx methods
for inner classes in mixins.
Example mixin that breaks: d5b3c910ac/common/src/main/java/com/railwayteam/railways/mixin/client/MixinStationScreen.java
This commit is contained in:
parent
66abdcd9a7
commit
ddffe93f1a
|
|
@ -12,7 +12,6 @@ import org.spongepowered.asm.service.MixinServiceAbstract;
|
|||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
|
@ -54,15 +53,13 @@ public class ClassInfoManager {
|
|||
|
||||
private static void doClear() {
|
||||
Map<String, ClassInfo> classInfoCache;
|
||||
Field mixinField, stateField, classNodeField, methodsField, fieldsField;
|
||||
Field mixinField, stateField, classNodeField;
|
||||
Class<?> stateClz;
|
||||
try {
|
||||
disableLoggers();
|
||||
Field field = accessible(ClassInfo.class.getDeclaredField("cache"));
|
||||
classInfoCache = (Map<String, ClassInfo>) field.get(null);
|
||||
mixinField = accessible(ClassInfo.class.getDeclaredField("mixin"));
|
||||
methodsField = accessible(ClassInfo.class.getDeclaredField("methods"));
|
||||
fieldsField = accessible(ClassInfo.class.getDeclaredField("fields"));
|
||||
stateClz = Class.forName("org.spongepowered.asm.mixin.transformer.MixinInfo$State");
|
||||
stateField = accessible(Class.forName("org.spongepowered.asm.mixin.transformer.MixinInfo").getDeclaredField("state"));
|
||||
classNodeField = accessible(stateClz.getDeclaredField("classNode"));
|
||||
|
|
@ -87,9 +84,6 @@ public class ClassInfoManager {
|
|||
if (state != null)
|
||||
classNodeField.set(state, emptyNode);
|
||||
}
|
||||
// clear fields, methods
|
||||
((Collection<?>)methodsField.get(mixinClz)).clear();
|
||||
((Collection<?>)fieldsField.get(mixinClz)).clear();
|
||||
} catch (ReflectiveOperationException | RuntimeException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user