aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/covers
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/common/covers
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/common/covers')
-rw-r--r--src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java b/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java
index 5145777f06..b57c4d682b 100644
--- a/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java
+++ b/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java
@@ -50,16 +50,20 @@ public class GT_Cover_ControlsWork extends GT_CoverBehavior implements IControls
if (machine.wasShutdown()) {
machine.disableWorking();
if (!mPlayerNotified) {
- mPlayerNotified = true;
- GT_Utility.sendChatToPlayer(
- lastPlayer,
- aTileEntity.getInventoryName() + "at "
- + String.format(
- "(%d,%d,%d)",
- aTileEntity.getXCoord(),
- aTileEntity.getYCoord(),
- aTileEntity.getZCoord())
- + " shut down.");
+ EntityPlayer player = lastPlayer == null ? null : lastPlayer.get();
+ if (player != null) {
+ lastPlayer = null;
+ mPlayerNotified = true;
+ GT_Utility.sendChatToPlayer(
+ player,
+ aTileEntity.getInventoryName() + "at "
+ + String.format(
+ "(%d,%d,%d)",
+ aTileEntity.getXCoord(),
+ aTileEntity.getYCoord(),
+ aTileEntity.getZCoord())
+ + " shut down.");
+ }
}
return 2;
} else {