Skip to content
This repository was archived by the owner on May 12, 2024. It is now read-only.

Commit 587f73d

Browse files
committed
Share DowngradeResult
1 parent 38e4f1e commit 587f73d

2 files changed

Lines changed: 9 additions & 11 deletions

File tree

src/main/java/net/raphimc/javadowngrader/JavaDowngrader.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public class JavaDowngrader {
6262
*
6363
* @param classNode The class to downgrade
6464
* @param targetVersion The target Java version
65-
* @return The downgrade result
65+
* @return The {@link DowngradeResult}
6666
* @see ClassNode
6767
*/
6868
public static DowngradeResult downgrade(final ClassNode classNode, final int targetVersion) {
@@ -76,16 +76,15 @@ public static DowngradeResult downgrade(final ClassNode classNode, final int tar
7676
* @param targetVersion The target Java version
7777
* @param depCollector The {@link RuntimeDepCollector} to use to collect runtime dependencies. Check the javadoc
7878
* of {@link RuntimeDepCollector} for more info.
79-
* @return The downgrade result
79+
* @return The {@link DowngradeResult}
8080
* @see ClassNode
8181
* @see RuntimeDepCollector
8282
*/
8383
public static DowngradeResult downgrade(final ClassNode classNode, final int targetVersion, final RuntimeDepCollector depCollector) {
84-
DowngradeResult result = new DowngradeResult();
84+
final DowngradeResult result = new DowngradeResult();
8585
for (DowngradingTransformer transformer : TRANSFORMER) {
8686
if (transformer.getTargetVersion() >= targetVersion && (classNode.version & 0xFF) > transformer.getTargetVersion()) {
87-
DowngradeResult transformerResult = transformer.transform(classNode, depCollector);
88-
result.add(transformerResult);
87+
transformer.transform(classNode, depCollector, result);
8988
}
9089
}
9190
return result;

src/main/java/net/raphimc/javadowngrader/transformer/DowngradingTransformer.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,17 +79,16 @@ protected void addClassReplacement(final String oldName, final String newName, S
7979
this.classReplacements.put(oldName, classes);
8080
}
8181

82-
public void transform(final ClassNode classNode) {
83-
transform(classNode, RuntimeDepCollector.NULL);
82+
public void transform(final ClassNode classNode, final DowngradeResult result) {
83+
transform(classNode, RuntimeDepCollector.NULL, result);
8484
}
8585

86-
public DowngradeResult transform(final ClassNode classNode, final RuntimeDepCollector depCollector) {
87-
DowngradeResult result = new DowngradeResult();
86+
public void transform(final ClassNode classNode, final RuntimeDepCollector depCollector, final DowngradeResult result) {
8887
if ((classNode.version & 0xFF) > this.sourceVersion) {
8988
throw new IllegalArgumentException("Input class version is higher than supported");
9089
}
9190
if ((classNode.version & 0xFF) <= this.targetVersion) {
92-
return result;
91+
return;
9392
}
9493

9594
this.preTransform(classNode, result);
@@ -166,6 +165,7 @@ public String map(String internalName) {
166165
if (classes == null) {
167166
return internalName;
168167
}
168+
result.setRequiresStackMapFrames();
169169
classes.forEach(depCollector);
170170
return classes.get(0);
171171
}
@@ -189,7 +189,6 @@ public String map(String internalName) {
189189
this.postTransform(classNode, result);
190190

191191
classNode.version = this.targetVersion;
192-
return result;
193192
}
194193

195194
protected void preTransform(final ClassNode classNode, final DowngradeResult result) {

0 commit comments

Comments
 (0)