PaperMC/paper-server/patches/sources/com/mojang/datafixers/DataFixerBuilder.java.patch

22 lines
1.3 KiB
Diff
Raw Normal View History

--- a/com/mojang/datafixers/DataFixerBuilder.java
+++ b/com/mojang/datafixers/DataFixerBuilder.java
2024-12-13 16:52:45 +01:00
@@ -29,8 +_,10 @@
private final Int2ObjectSortedMap<Schema> schemas = new Int2ObjectAVLTreeMap<>();
private final List<DataFix> globalList = new ArrayList<>();
private final IntSortedSet fixerVersions = new IntAVLTreeSet();
+ private final int minDataFixPrecacheVersion; // Paper - Perf: Cache DataFixerUpper Rewrite Rules on demand
public DataFixerBuilder(final int dataVersion) {
+ this.minDataFixPrecacheVersion = Integer.getInteger("Paper.minPrecachedDatafixVersion", dataVersion + 1) * 10; // Paper - Perf: default to precache nothing - Mojang stores versions * 10 to allow for 'sub versions'
this.dataVersion = dataVersion;
}
2024-12-13 16:52:45 +01:00
@@ -88,6 +_,7 @@
final IntIterator iterator = fixerUpper.fixerVersions().iterator();
while (iterator.hasNext()) {
final int versionKey = iterator.nextInt();
+ if (versionKey < minDataFixPrecacheVersion) continue; // Paper - Perf: Cache DataFixerUpper Rewrite Rules on demand
final Schema schema = schemas.get(versionKey);
for (final String typeName : schema.types()) {
if (!requiredTypeNames.contains(typeName)) {