Use a finalizer for light packet instead of onPacketDone
Sadly sharing packets is breaking the ability to do this :( We can prob still do a little better than this but will save that for another commit.
This commit is contained in:
@@ -151,12 +151,16 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||||||
|
|
||||||
public PacketPlayOutLightUpdate() {}
|
public PacketPlayOutLightUpdate() {}
|
||||||
+ // Paper start
|
+ // Paper start
|
||||||
+ private final java.util.List<byte[]> usedBytes = new java.util.ArrayList<>();
|
+ private java.util.List<byte[]> usedBytes = new java.util.ArrayList<>();
|
||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public void onPacketDone() {
|
+ public void finalize() throws Throwable {
|
||||||
|
+ try {
|
||||||
+ usedBytes.forEach(NibbleArray::releaseBytes);
|
+ usedBytes.forEach(NibbleArray::releaseBytes);
|
||||||
+ usedBytes.clear();
|
+ usedBytes.clear();
|
||||||
|
+ } finally {
|
||||||
|
+ super.finalize();
|
||||||
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user