From bef4fe37b3c6f3277398be516b050d302512cf31 Mon Sep 17 00:00:00 2001 From: TheMode Date: Sat, 4 Dec 2021 00:54:31 +0100 Subject: [PATCH] Avoid potential packet allocation in CachedPacket#packet Signed-off-by: TheMode --- .../minestom/server/network/packet/server/CachedPacket.java | 3 +++ .../minestom/server/network/packet/server/FramedPacket.java | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minestom/server/network/packet/server/CachedPacket.java b/src/main/java/net/minestom/server/network/packet/server/CachedPacket.java index 5fb96bffb..fd38efcfa 100644 --- a/src/main/java/net/minestom/server/network/packet/server/CachedPacket.java +++ b/src/main/java/net/minestom/server/network/packet/server/CachedPacket.java @@ -54,6 +54,9 @@ public final class CachedPacket implements SendablePacket { * but {@link #retrieve()} should be privileged otherwise. */ public @NotNull ServerPacket packet() { + FramedPacket cache; + if (updated == 1 && (cache = packet.get()) != null) + return cache.packet(); // Avoid potential packet allocation return packetSupplier.get(); } diff --git a/src/main/java/net/minestom/server/network/packet/server/FramedPacket.java b/src/main/java/net/minestom/server/network/packet/server/FramedPacket.java index 70cce3fbf..1f38761f9 100644 --- a/src/main/java/net/minestom/server/network/packet/server/FramedPacket.java +++ b/src/main/java/net/minestom/server/network/packet/server/FramedPacket.java @@ -14,7 +14,6 @@ import java.nio.ByteBuffer; @ApiStatus.Internal public record FramedPacket(@NotNull ServerPacket packet, @NotNull ByteBuffer body) implements SendablePacket { - public FramedPacket { body = body.position(0).asReadOnlyBuffer(); }