aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/util/GT_CoverBehavior.java
diff options
context:
space:
mode:
authortth05 <36999320+tth05@users.noreply.github.com>2023-10-15 21:53:27 +0200
committerGitHub <noreply@github.com>2023-10-15 19:53:27 +0000
commit8ce67c167c8f5938b0fed79b1d9727663d9cd9bc (patch)
tree6e5f1c41c40e748d6c4b1a6ae792f9ec39aca9bd /src/main/java/gregtech/api/util/GT_CoverBehavior.java
parent7a885d78f2d10ee1c7c00ac865bfa6abb0c71500 (diff)
downloadGT5-Unofficial-8ce67c167c8f5938b0fed79b1d9727663d9cd9bc.tar.gz
GT5-Unofficial-8ce67c167c8f5938b0fed79b1d9727663d9cd9bc.tar.bz2
GT5-Unofficial-8ce67c167c8f5938b0fed79b1d9727663d9cd9bc.zip
Fix memory leak of player instances in CoverBehavior (#2333)
* Use weak references to store last player in cover behavior * Remove duplicate lastPlayer field from GT_CoverBehavior
Diffstat (limited to 'src/main/java/gregtech/api/util/GT_CoverBehavior.java')
-rw-r--r--src/main/java/gregtech/api/util/GT_CoverBehavior.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/main/java/gregtech/api/util/GT_CoverBehavior.java b/src/main/java/gregtech/api/util/GT_CoverBehavior.java
index 2f93d8faf3..34fc151b9a 100644
--- a/src/main/java/gregtech/api/util/GT_CoverBehavior.java
+++ b/src/main/java/gregtech/api/util/GT_CoverBehavior.java
@@ -2,6 +2,8 @@ package gregtech.api.util;
import static gregtech.api.enums.GT_Values.E;
+import java.lang.ref.WeakReference;
+
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
@@ -20,7 +22,6 @@ import gregtech.api.net.GT_Packet_TileEntityCoverGUI;
*/
public abstract class GT_CoverBehavior extends GT_CoverBehaviorBase<ISerializableObject.LegacyCoverData> {
- public EntityPlayer lastPlayer = null;
public boolean mPlayerNotified = false;
public GT_CoverBehavior() {
@@ -241,7 +242,7 @@ public abstract class GT_CoverBehavior extends GT_CoverBehaviorBase<ISerializabl
public boolean onCoverShiftRightclick(ForgeDirection side, int aCoverID, int aCoverVariable, ICoverable aTileEntity,
EntityPlayer aPlayer) {
if (hasCoverGUI() && aPlayer instanceof EntityPlayerMP) {
- lastPlayer = aPlayer;
+ lastPlayer = new WeakReference<>(aPlayer);
mPlayerNotified = false;
if (useModularUI()) {
GT_UIInfos.openCoverUI(aTileEntity, aPlayer, side);