Skip to content

Commit

Permalink
Only apply mixin processing to inputs (#123)
Browse files Browse the repository at this point in the history
  • Loading branch information
modmuss50 authored Jan 3, 2024
1 parent cc0e3dd commit 979f50c
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 2 deletions.
5 changes: 5 additions & 0 deletions src/main/java/net/fabricmc/tinyremapper/ClassInstance.java
Original file line number Diff line number Diff line change
Expand Up @@ -872,6 +872,11 @@ public void accept(ClassVisitor cv, int readerFlags) {
new ClassReader(data).accept(cv, readerFlags);
}

@Override
public boolean isInput() {
return isInput;
}

@Override
public String toString() {
return name;
Expand Down
14 changes: 13 additions & 1 deletion src/main/java/net/fabricmc/tinyremapper/TinyRemapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -259,11 +259,23 @@ public interface Extension {
}

public interface AnalyzeVisitorProvider {
/**
* @deprecated use {@link #insertAnalyzeVisitor(boolean, int, String, ClassVisitor, InputTag[])} instead
*/
@Deprecated
ClassVisitor insertAnalyzeVisitor(int mrjVersion, String className, ClassVisitor next);

/**
* @deprecated use {@link #insertAnalyzeVisitor(boolean, int, String, ClassVisitor, InputTag[])} instead
*/
@Deprecated
default ClassVisitor insertAnalyzeVisitor(int mrjVersion, String className, ClassVisitor next, /* @Nullable */ InputTag[] inputTags) {
return insertAnalyzeVisitor(mrjVersion, className, next);
}

default ClassVisitor insertAnalyzeVisitor(boolean isInput, int mrjVersion, String className, ClassVisitor next, /* @Nullable */ InputTag[] inputTags) {
return insertAnalyzeVisitor(mrjVersion, className, next, inputTags);
}
}

public interface StateProcessor {
Expand Down Expand Up @@ -623,7 +635,7 @@ public FieldVisitor visitField(int access, String name, String desc, String sign
};

for (int i = analyzeVisitors.size() - 1; i >= 0; i--) {
cv = analyzeVisitors.get(i).insertAnalyzeVisitor(mrjVersion, name, cv, tags);
cv = analyzeVisitors.get(i).insertAnalyzeVisitor(isInput, mrjVersion, name, cv, tags);
}

reader.accept(cv, ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES | ClassReader.SKIP_CODE);
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/net/fabricmc/tinyremapper/api/TrClass.java
Original file line number Diff line number Diff line change
Expand Up @@ -142,4 +142,9 @@ default boolean isRecord() {
default boolean isModule() {
return (getAccess() & Opcodes.ACC_MODULE) != 0;
}

/**
* Return true when this class is from an input, and not just on the classpath.
*/
boolean isInput();
}
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,15 @@ public ClassVisitor insertAnalyzeVisitor(int mrjVersion, String className, Class
return next;
}
}

@Override
public ClassVisitor insertAnalyzeVisitor(boolean isInput, int mrjVersion, String className, ClassVisitor next, InputTag[] inputTags) {
if (!isInput) {
return next;
}

return insertAnalyzeVisitor(mrjVersion, className, next, inputTags);
}
}

/**
Expand All @@ -159,7 +168,9 @@ public ClassVisitor insertApplyVisitor(TrClass cls, ClassVisitor next) {

@Override
public ClassVisitor insertApplyVisitor(TrClass cls, ClassVisitor next, InputTag[] inputTags) {
if (inputTagFilter == null || inputTags == null) {
if (!cls.isInput()) {
return next;
} else if (inputTagFilter == null || inputTags == null) {
return insertApplyVisitor(cls, next);
} else {
for (InputTag tag : inputTags) {
Expand Down

0 comments on commit 979f50c

Please sign in to comment.