Skip to content

Commit b1f23c6

Browse files
committed
Updated to the newest version of bootstrap
1 parent 173b735 commit b1f23c6

2 files changed

Lines changed: 23 additions & 6 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ repositories {
6060
}
6161

6262
dependencies {
63-
compileOnly("org.mangorage:mangobotbootstrap:1.0.86")
63+
compileOnly("org.mangorage:mangobotbootstrap:1.0.87")
6464
}
6565

6666
test {

src/main/java/org/mangorage/mangobotlaunch/launch/ClassTransformers.java

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public final class ClassTransformers implements IClassTransformerHistory {
1818
private static final Logger LOGGER = Logger.getLogger(ClassTransformers.class.getName());
1919
private static final boolean DEBUG_CLASS_TRANSFORMING = Boolean.getBoolean("DEBUG_CLASS_TRANSFORMING");
2020

21-
record TransformerHistoryEntry(Class<?> transformer, String transformerName, TransformerFlag transformerFlag, byte[] classData)
21+
record TransformerHistoryEntry(Class<?> transformer, String transformerName, TransformerFlag transformerFlag, byte[] classData, byte[] transformerResult, ITransformerResultHistory previous)
2222
implements ITransformerResultHistory {}
2323

2424
private final List<IClassTransformer> transformers = new CopyOnWriteArrayList<>();
@@ -37,27 +37,44 @@ byte[] transform(String name, byte[] classData) {
3737
return null;
3838
}
3939

40+
ITransformerResultHistory previous = null;
41+
List<ITransformerResultHistory> historyList = DEBUG_CLASS_TRANSFORMING ? transformerHistoryCache.computeIfAbsent(name, k -> new CopyOnWriteArrayList<>()) : null;
42+
4043
for (IClassTransformer transformer : transformers) {
4144

4245
TransformResult result = transformer.transform(name, classData);
4346

44-
if (DEBUG_CLASS_TRANSFORMING && transformerHistoryCache != null) {
45-
transformerHistoryCache.computeIfAbsent(name, k -> new CopyOnWriteArrayList<>())
46-
.add(new TransformerHistoryEntry(transformer.getClass(), transformer.getName(), result.flag(), result.classData()));
47+
if (DEBUG_CLASS_TRANSFORMING) {
48+
49+
// create and store the history entry
50+
TransformerHistoryEntry entry = new TransformerHistoryEntry(
51+
transformer.getClass(),
52+
transformer.getName(),
53+
result.flag(),
54+
classData, // original data before this transformer
55+
result.classData(), // result of this transformer
56+
previous // previous history entry
57+
);
58+
59+
historyList.add(entry);
60+
previous = entry; // update previous for the next iteration
61+
4762
LOGGER.log(Level.FINE, "Transformer history recorded for {0} using {1}", new Object[]{name, transformer.getName()});
4863
}
4964

5065
if (result.flag() != TransformerFlag.NO_REWRITE) {
5166
LOGGER.log(Level.INFO, "Class {0} transformed by {1}", new Object[]{name, transformer.getName()});
5267
return result.classData();
5368
}
69+
70+
// currentData remains the same if NO_REWRITE
5471
}
5572

5673
LOGGER.log(Level.FINE, "No transformation applied to class: {0}", name);
57-
5874
return null;
5975
}
6076

77+
6178
@Override
6279
public List<ITransformerResultHistory> getHistory(String className) {
6380
if (!DEBUG_CLASS_TRANSFORMING || transformerHistoryCache == null) {

0 commit comments

Comments
 (0)