3
0
Mirror von https://github.com/IntellectualSites/FastAsyncWorldEdit.git synchronisiert 2024-11-20 09:50:06 +01:00

fix: always set createCopy status on chunk get as chunks are cached (#2567)

- fixes #2539
Dieser Commit ist enthalten in:
Jordan 2024-02-02 18:06:57 +01:00 committet von GitHub
Ursprung 9ffe76dce3
Commit 033b8e35d2
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: B5690EEEBB952194
7 geänderte Dateien mit 7 neuen und 1 gelöschten Zeilen

Datei anzeigen

@ -148,6 +148,7 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc
throw new IllegalStateException("Attempting to set if chunk GET should create copy, but it is not call-locked."); throw new IllegalStateException("Attempting to set if chunk GET should create copy, but it is not call-locked.");
} }
this.createCopy = createCopy; this.createCopy = createCopy;
// Increment regardless of whether copy will be created or not to return null from getCopy()
return ++this.copyKey; return ++this.copyKey;
} }

Datei anzeigen

@ -153,6 +153,7 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc
throw new IllegalStateException("Attempting to set if chunk GET should create copy, but it is not call-locked."); throw new IllegalStateException("Attempting to set if chunk GET should create copy, but it is not call-locked.");
} }
this.createCopy = createCopy; this.createCopy = createCopy;
// Increment regardless of whether copy will be created or not to return null from getCopy()
return ++this.copyKey; return ++this.copyKey;
} }

Datei anzeigen

@ -156,6 +156,7 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc
throw new IllegalStateException("Attempting to set if chunk GET should create copy, but it is not call-locked."); throw new IllegalStateException("Attempting to set if chunk GET should create copy, but it is not call-locked.");
} }
this.createCopy = createCopy; this.createCopy = createCopy;
// Increment regardless of whether copy will be created or not to return null from getCopy()
return ++this.copyKey; return ++this.copyKey;
} }

Datei anzeigen

@ -156,6 +156,7 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc
throw new IllegalStateException("Attempting to set if chunk GET should create copy, but it is not call-locked."); throw new IllegalStateException("Attempting to set if chunk GET should create copy, but it is not call-locked.");
} }
this.createCopy = createCopy; this.createCopy = createCopy;
// Increment regardless of whether copy will be created or not to return null from getCopy()
return ++this.copyKey; return ++this.copyKey;
} }

Datei anzeigen

@ -135,6 +135,7 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc
throw new IllegalStateException("Attempting to set if chunk GET should create copy, but it is not call-locked."); throw new IllegalStateException("Attempting to set if chunk GET should create copy, but it is not call-locked.");
} }
this.createCopy = createCopy; this.createCopy = createCopy;
// Increment regardless of whether copy will be created or not to return null from getCopy()
return ++this.copyKey; return ++this.copyKey;
} }

Datei anzeigen

@ -135,6 +135,7 @@ public class PaperweightGetBlocks extends CharGetBlocks implements BukkitGetBloc
throw new IllegalStateException("Attempting to set if chunk GET should create copy, but it is not call-locked."); throw new IllegalStateException("Attempting to set if chunk GET should create copy, but it is not call-locked.");
} }
this.createCopy = createCopy; this.createCopy = createCopy;
// Increment regardless of whether copy will be created or not to return null from getCopy()
return ++this.copyKey; return ++this.copyKey;
} }

Datei anzeigen

@ -1031,10 +1031,10 @@ public class ChunkHolder<T extends Future<T>> implements IQueueChunk<T> {
try { try {
get.lockCall(); get.lockCall();
boolean postProcess = !(getExtent().getPostProcessor() instanceof EmptyBatchProcessor); boolean postProcess = !(getExtent().getPostProcessor() instanceof EmptyBatchProcessor);
final int copyKey = get.setCreateCopy(postProcess);
final IChunkSet iChunkSet = getExtent().processSet(this, get, set); final IChunkSet iChunkSet = getExtent().processSet(this, get, set);
Runnable finalizer; Runnable finalizer;
if (postProcess) { if (postProcess) {
int copyKey = get.setCreateCopy(true);
finalizer = () -> { finalizer = () -> {
getExtent().postProcess(this, get.getCopy(copyKey), iChunkSet); getExtent().postProcess(this, get.getCopy(copyKey), iChunkSet);
finalize.run(); finalize.run();