Skip to content

Commit

Permalink
Merge pull request #926 from AoElite/2.0
Browse files Browse the repository at this point in the history
Release item buffer regardless of exception
  • Loading branch information
AbhigyaKrishna authored Aug 11, 2024
2 parents e04cd21 + c09348d commit fe67c23
Showing 1 changed file with 23 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -800,27 +800,33 @@ public static Object createNMSItemStack(Object nmsItem, int count) {

public static com.github.retrooper.packetevents.protocol.item.ItemStack decodeBukkitItemStack(ItemStack in) {
Object buffer = PooledByteBufAllocator.DEFAULT.buffer();
//3 reflection calls
Object packetDataSerializer = createPacketDataSerializer(buffer);
Object nmsItemStack = toNMSItemStack(in);
writeNMSItemStackPacketDataSerializer(packetDataSerializer, nmsItemStack);
//No more reflection from here on.
PacketWrapper<?> wrapper = PacketWrapper.createUniversalPacketWrapper(buffer);
com.github.retrooper.packetevents.protocol.item.ItemStack stack = wrapper.readItemStack();
ByteBufHelper.release(buffer);
return stack;
try {
// 3 reflection calls
Object packetDataSerializer = createPacketDataSerializer(buffer);
Object nmsItemStack = toNMSItemStack(in);
writeNMSItemStackPacketDataSerializer(packetDataSerializer, nmsItemStack);
// No more reflection from here on.
PacketWrapper<?> wrapper = PacketWrapper.createUniversalPacketWrapper(buffer);
com.github.retrooper.packetevents.protocol.item.ItemStack stack = wrapper.readItemStack();
return stack;
} finally {
ByteBufHelper.release(buffer);
}
}

public static ItemStack encodeBukkitItemStack(com.github.retrooper.packetevents.protocol.item.ItemStack in) {
Object buffer = PooledByteBufAllocator.DEFAULT.buffer();
PacketWrapper<?> wrapper = PacketWrapper.createUniversalPacketWrapper(buffer);
wrapper.writeItemStack(in);
//3 reflection calls
Object packetDataSerializer = createPacketDataSerializer(wrapper.getBuffer());
Object nmsItemStack = readNMSItemStackPacketDataSerializer(packetDataSerializer);
ItemStack stack = toBukkitItemStack(nmsItemStack);
ByteBufHelper.release(buffer);
return stack;
try {
PacketWrapper<?> wrapper = PacketWrapper.createUniversalPacketWrapper(buffer);
wrapper.writeItemStack(in);
// 3 reflection calls
Object packetDataSerializer = createPacketDataSerializer(wrapper.getBuffer());
Object nmsItemStack = readNMSItemStackPacketDataSerializer(packetDataSerializer);
ItemStack stack = toBukkitItemStack(nmsItemStack);
return stack;
} finally {
ByteBufHelper.release(buffer);
}
}

public static int getBlockDataCombinedId(MaterialData materialData) {
Expand Down

0 comments on commit fe67c23

Please sign in to comment.