From fa3512621c2d3e353fded5c5bf9b14c966b07a8a Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Sun, 12 Jul 2020 12:39:15 +0200 Subject: [PATCH] Release resources, if the tab is deselected This allows the garbage collector to work properly and reduces the minimum heap size --- client/src/main/java/ctbrec/ui/tabs/ThumbCell.java | 4 ++++ .../src/main/java/ctbrec/ui/tabs/ThumbOverviewTab.java | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/client/src/main/java/ctbrec/ui/tabs/ThumbCell.java b/client/src/main/java/ctbrec/ui/tabs/ThumbCell.java index 1f26d841..bb01c4d5 100644 --- a/client/src/main/java/ctbrec/ui/tabs/ThumbCell.java +++ b/client/src/main/java/ctbrec/ui/tabs/ThumbCell.java @@ -644,4 +644,8 @@ public class ThumbCell extends StackPane { return new int[2]; } } + + public void releaseResources() { + iv.setImage(null); + } } diff --git a/client/src/main/java/ctbrec/ui/tabs/ThumbOverviewTab.java b/client/src/main/java/ctbrec/ui/tabs/ThumbOverviewTab.java index 6d052701..7623cf2b 100644 --- a/client/src/main/java/ctbrec/ui/tabs/ThumbOverviewTab.java +++ b/client/src/main/java/ctbrec/ui/tabs/ThumbOverviewTab.java @@ -872,6 +872,15 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener { updateService.cancel(); } queue.clear(); + + for (Iterator iterator = grid.getChildren().iterator(); iterator.hasNext();) { + Node node = iterator.next(); + if(node instanceof ThumbCell) { + ThumbCell thumbCell = (ThumbCell) node; + thumbCell.releaseResources(); + iterator.remove(); + } + } } void suspendUpdates(boolean suspend) {