Skip to content

Commit ddffe93

Browse files
committed
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: https://github.com/Layers-of-Railways/Railway/blob/d5b3c910aceb7dadefa832aa85d79c55d49012e0/common/src/main/java/com/railwayteam/railways/mixin/client/MixinStationScreen.java
1 parent 66abdcd commit ddffe93

File tree

1 file changed

+1
-7
lines changed

1 file changed

+1
-7
lines changed

common/src/main/java/org/embeddedt/modernfix/util/ClassInfoManager.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
import java.lang.reflect.Field;
1414
import java.util.ArrayList;
15-
import java.util.Collection;
1615
import java.util.List;
1716
import java.util.Map;
1817

@@ -54,15 +53,13 @@ private static void disableLoggers() throws ReflectiveOperationException {
5453

5554
private static void doClear() {
5655
Map<String, ClassInfo> classInfoCache;
57-
Field mixinField, stateField, classNodeField, methodsField, fieldsField;
56+
Field mixinField, stateField, classNodeField;
5857
Class<?> stateClz;
5958
try {
6059
disableLoggers();
6160
Field field = accessible(ClassInfo.class.getDeclaredField("cache"));
6261
classInfoCache = (Map<String, ClassInfo>) field.get(null);
6362
mixinField = accessible(ClassInfo.class.getDeclaredField("mixin"));
64-
methodsField = accessible(ClassInfo.class.getDeclaredField("methods"));
65-
fieldsField = accessible(ClassInfo.class.getDeclaredField("fields"));
6663
stateClz = Class.forName("org.spongepowered.asm.mixin.transformer.MixinInfo$State");
6764
stateField = accessible(Class.forName("org.spongepowered.asm.mixin.transformer.MixinInfo").getDeclaredField("state"));
6865
classNodeField = accessible(stateClz.getDeclaredField("classNode"));
@@ -87,9 +84,6 @@ private static void doClear() {
8784
if (state != null)
8885
classNodeField.set(state, emptyNode);
8986
}
90-
// clear fields, methods
91-
((Collection<?>)methodsField.get(mixinClz)).clear();
92-
((Collection<?>)fieldsField.get(mixinClz)).clear();
9387
} catch (ReflectiveOperationException | RuntimeException e) {
9488
e.printStackTrace();
9589
}

0 commit comments

Comments
 (0)