Skip to content
This repository has been archived by the owner on Jul 9, 2023. It is now read-only.

Commit

Permalink
Better checking of if we should be accessing data from super CharBloc…
Browse files Browse the repository at this point in the history
…ks class

Possibly addresses IntellectualSites/FastAsyncWorldEdit#1169
  • Loading branch information
dordsor21 committed Aug 8, 2021
1 parent 800eabd commit 3f6df1a
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -682,14 +682,18 @@ public synchronized <T extends Future<T>> T call(IChunkSet set, Runnable finaliz
}
}

private synchronized char[] loadPrivately(int layer) {
if (super.blocks[layer] != null) {
char[] blocks = new char[4096];
System.arraycopy(super.blocks[layer], 0, blocks, 0, 4096);
return blocks;
} else {
return BukkitGetBlocks_1_15_2.this.update(layer, null, true);
private char[] loadPrivately(int layer) {
Section section = super.sections[layer];
if (super.sections[layer] != null) {
synchronized (section) {
if (super.sections[layer].isFull() && super.blocks[layer] != null) {
char[] blocks = new char[4096];
System.arraycopy(super.blocks[layer], 0, blocks, 0, 4096);
return blocks;
}
}
}
return BukkitGetBlocks_1_15_2.this.update(layer, null, true);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -713,14 +713,18 @@ public synchronized <T extends Future<T>> T call(IChunkSet set, Runnable finaliz
}
}

private synchronized char[] loadPrivately(int layer) {
if (super.blocks[layer] != null) {
char[] blocks = new char[4096];
System.arraycopy(super.blocks[layer], 0, blocks, 0, 4096);
return blocks;
} else {
return BukkitGetBlocks_1_16_5.this.update(layer, null, true);
private char[] loadPrivately(int layer) {
Section section = super.sections[layer];
if (super.sections[layer] != null) {
synchronized (section) {
if (super.sections[layer].isFull() && super.blocks[layer] != null) {
char[] blocks = new char[4096];
System.arraycopy(super.blocks[layer], 0, blocks, 0, 4096);
return blocks;
}
}
}
return BukkitGetBlocks_1_16_5.this.update(layer, null, true);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -715,14 +715,18 @@ public synchronized <T extends Future<T>> T call(IChunkSet set, Runnable finaliz
}
}

private synchronized char[] loadPrivately(int layer) {
if (super.blocks[layer] != null) {
char[] blocks = new char[4096];
System.arraycopy(super.blocks[layer], 0, blocks, 0, 4096);
return blocks;
} else {
return BukkitGetBlocks_1_17.this.update(layer, null, true);
private char[] loadPrivately(int layer) {
Section section = super.sections[layer];
if (super.sections[layer] != null) {
synchronized (section) {
if (super.sections[layer].isFull() && super.blocks[layer] != null) {
char[] blocks = new char[4096];
System.arraycopy(super.blocks[layer], 0, blocks, 0, 4096);
return blocks;
}
}
}
return BukkitGetBlocks_1_17.this.update(layer, null, true);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -715,14 +715,18 @@ public synchronized <T extends Future<T>> T call(IChunkSet set, Runnable finaliz
}
}

private synchronized char[] loadPrivately(int layer) {
if (super.blocks[layer] != null) {
char[] blocks = new char[4096];
System.arraycopy(super.blocks[layer], 0, blocks, 0, 4096);
return blocks;
} else {
return BukkitGetBlocks_1_17_1.this.update(layer, null, true);
private char[] loadPrivately(int layer) {
Section section = super.sections[layer];
if (super.sections[layer] != null) {
synchronized (section) {
if (super.sections[layer].isFull() && super.blocks[layer] != null) {
char[] blocks = new char[4096];
System.arraycopy(super.blocks[layer], 0, blocks, 0, 4096);
return blocks;
}
}
}
return BukkitGetBlocks_1_17_1.this.update(layer, null, true);
}

@Override
Expand Down

0 comments on commit 3f6df1a

Please sign in to comment.