From f83f959cafd02d3d934ea149187a8ebb92e1bbbc Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Thu, 14 Jun 2018 16:26:52 +0200 Subject: [PATCH] Fix overlay collection modification checks - Remove check for .add as for ArrayList it is always true and so it is dead condition - Add check for removeIf, so the overlay layers will be rebuilt only when something is removed Signed-off-by: Tomas Slusny --- .../client/ui/overlay/OverlayManager.java | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java index 0f2f77d6e0..d9f96daed4 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayManager.java @@ -114,20 +114,16 @@ public class OverlayManager return false; } - final boolean add = overlays.add(overlay); - - if (add) - { - final Point location = loadOverlayLocation(overlay); - overlay.setPreferredLocation(location); - final Dimension size = loadOverlaySize(overlay); - overlay.setPreferredSize(size); - final OverlayPosition position = loadOverlayPosition(overlay); - overlay.setPreferredPosition(position); - rebuildOverlayLayers(); - } - - return add; + // Add is always true + overlays.add(overlay); + final Point location = loadOverlayLocation(overlay); + overlay.setPreferredLocation(location); + final Dimension size = loadOverlaySize(overlay); + overlay.setPreferredSize(size); + final OverlayPosition position = loadOverlayPosition(overlay); + overlay.setPreferredPosition(position); + rebuildOverlayLayers(); + return true; } /** @@ -157,7 +153,12 @@ public class OverlayManager public synchronized boolean removeIf(Predicate filter) { final boolean removeIf = overlays.removeIf(filter); - rebuildOverlayLayers(); + + if (removeIf) + { + rebuildOverlayLayers(); + } + return removeIf; }