From 081a30056c9c744add6cf2895e9e922d5b9b340b Mon Sep 17 00:00:00 2001 From: Max Weber Date: Sun, 14 Nov 2021 13:10:26 -0700 Subject: [PATCH] avoid boxing `Comparator.comparing`s --- .../main/java/net/runelite/cache/fs/flat/FlatStorage.java | 4 ++-- .../java/net/runelite/api/geometry/RectangleUnion.java | 4 ++-- .../main/java/net/runelite/client/eventbus/EventBus.java | 4 ++-- .../runelite/client/plugins/banktags/BankTagsPlugin.java | 4 ++-- .../runelite/client/plugins/devtools/WidgetInspector.java | 4 ++-- .../runelite/client/plugins/fishing/FishingPlugin.java | 8 ++++---- .../client/plugins/itemstats/potions/SaradominBrew.java | 2 +- .../client/plugins/itemstats/potions/SuperRestore.java | 4 +++- .../plugins/itemstats/special/CastleWarsBandage.java | 2 +- .../net/runelite/client/plugins/music/MusicPlugin.java | 2 +- .../client/plugins/questlist/QuestListPlugin.java | 2 +- .../java/net/runelite/client/ui/ContainableFrame.java | 2 +- 12 files changed, 22 insertions(+), 20 deletions(-) diff --git a/cache/src/main/java/net/runelite/cache/fs/flat/FlatStorage.java b/cache/src/main/java/net/runelite/cache/fs/flat/FlatStorage.java index c8d651bcf6..9afe72785c 100644 --- a/cache/src/main/java/net/runelite/cache/fs/flat/FlatStorage.java +++ b/cache/src/main/java/net/runelite/cache/fs/flat/FlatStorage.java @@ -210,7 +210,7 @@ public class FlatStorage implements Storage @Override public void save(Store store) throws IOException { - store.getIndexes().sort(Comparator.comparing(Index::getId)); + store.getIndexes().sort(Comparator.comparingInt(Index::getId)); for (Index idx : store.getIndexes()) { String file = idx.getId() + EXTENSION; @@ -222,7 +222,7 @@ public class FlatStorage implements Storage br.printf("crc=%d\n", idx.getCrc()); br.printf("named=%b\n", idx.isNamed()); - idx.getArchives().sort(Comparator.comparing(Archive::getArchiveId)); + idx.getArchives().sort(Comparator.comparingInt(Archive::getArchiveId)); for (Archive archive : idx.getArchives()) { br.printf("id=%d\n", archive.getArchiveId()); diff --git a/runelite-api/src/main/java/net/runelite/api/geometry/RectangleUnion.java b/runelite-api/src/main/java/net/runelite/api/geometry/RectangleUnion.java index e71f80c6b1..33ae860f25 100644 --- a/runelite-api/src/main/java/net/runelite/api/geometry/RectangleUnion.java +++ b/runelite-api/src/main/java/net/runelite/api/geometry/RectangleUnion.java @@ -65,13 +65,13 @@ public class RectangleUnion boolean trace = log.isTraceEnabled(); // Sort all of the rectangles so they are ordered by their left edge - lefts.sort(Comparator.comparing(Rectangle::getX1)); + lefts.sort(Comparator.comparingInt(Rectangle::getX1)); // Again, but for the right edge // this should be relatively fast if the rectangles are similar sizes because timsort deals with partially // presorted data well List rights = new ArrayList<>(lefts); - rights.sort(Comparator.comparing(Rectangle::getX2)); + rights.sort(Comparator.comparingInt(Rectangle::getX2)); // ranges of our scan line with how many rectangles it is occluding Segments segments = new Segments(); diff --git a/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java index ed51aabb6e..2786e61947 100644 --- a/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java +++ b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java @@ -100,7 +100,7 @@ public class EventBus { final ImmutableMultimap.Builder, Subscriber> builder = ImmutableMultimap.builder(); builder.putAll(subscribers); - builder.orderValuesBy(Comparator.comparing(Subscriber::getPriority).reversed() + builder.orderValuesBy(Comparator.comparingDouble(Subscriber::getPriority).reversed() .thenComparing(s -> s.object.getClass().getName())); for (Class clazz = object.getClass(); clazz != null; clazz = clazz.getSuperclass()) @@ -171,7 +171,7 @@ public class EventBus { final ImmutableMultimap.Builder, Subscriber> builder = ImmutableMultimap.builder(); builder.putAll(subscribers); - builder.orderValuesBy(Comparator.comparing(Subscriber::getPriority).reversed() + builder.orderValuesBy(Comparator.comparingDouble(Subscriber::getPriority).reversed() .thenComparing(s -> s.object.getClass().getName())); Subscriber sub = new Subscriber(subFn, null, priority, (Consumer) subFn); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java index c4158abd6a..70088692c8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/banktags/BankTagsPlugin.java @@ -546,8 +546,8 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener Widget[] containerChildren = itemContainer.getDynamicChildren(); // sort the child array as the items are not in the displayed order - Arrays.sort(containerChildren, Comparator.comparing(Widget::getOriginalY) - .thenComparing(Widget::getOriginalX)); + Arrays.sort(containerChildren, Comparator.comparingInt(Widget::getOriginalY) + .thenComparingInt(Widget::getOriginalX)); for (Widget child : containerChildren) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java index bb0ac5bf40..2f361bc99b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/WidgetInspector.java @@ -436,9 +436,9 @@ class WidgetInspector extends DevToolsFrame parent = Stream.of(roots) .filter(w -> w.getType() == WidgetType.LAYER && w.getContentType() == 0 && !w.isSelfHidden()) - .sorted(Comparator.comparing((Widget w) -> w.getRelativeX() + w.getRelativeY()) + .sorted(Comparator.comparingInt((Widget w) -> w.getRelativeX() + w.getRelativeY()) .reversed() - .thenComparing(Widget::getId) + .thenComparingInt(Widget::getId) .reversed()) .findFirst().get(); x = 4; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingPlugin.java index 66e57e7d52..8ade1cc5f1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingPlugin.java @@ -462,14 +462,14 @@ public class FishingPlugin extends Plugin final LocalPoint cameraPoint = new LocalPoint(client.getCameraX(), client.getCameraY()); fishingSpots.sort( - Comparator.comparing( + Comparator.comparingInt( // Negate to have the furthest first (NPC npc) -> -npc.getLocalLocation().distanceTo(cameraPoint)) // Order by position - .thenComparing(NPC::getLocalLocation, Comparator.comparing(LocalPoint::getX) - .thenComparing(LocalPoint::getY)) + .thenComparing(NPC::getLocalLocation, Comparator.comparingInt(LocalPoint::getX) + .thenComparingInt(LocalPoint::getY)) // And then by id - .thenComparing(NPC::getId) + .thenComparingInt(NPC::getId) ); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/potions/SaradominBrew.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/potions/SaradominBrew.java index 3a0f73d9be..2eaea550f4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/potions/SaradominBrew.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/potions/SaradominBrew.java @@ -72,7 +72,7 @@ public class SaradominBrew implements Effect ).toArray(StatChange[]::new)); changes.setPositivity(Stream.of(changes.getStatChanges()) .map(sc -> sc.getPositivity()) - .max(Comparator.comparing(Enum::ordinal)).get()); + .max(Comparator.naturalOrder()).get()); return changes; } } \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/potions/SuperRestore.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/potions/SuperRestore.java index d5747bd1b8..66780c38ae 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/potions/SuperRestore.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/potions/SuperRestore.java @@ -68,7 +68,9 @@ public class SuperRestore implements Effect return calc.effect(client); }) ).toArray(StatChange[]::new)); - changes.setPositivity(Stream.of(changes.getStatChanges()).map(sc -> sc.getPositivity()).max(Comparator.comparing(Enum::ordinal)).get()); + changes.setPositivity(Stream.of(changes.getStatChanges()) + .map(sc -> sc.getPositivity()) + .max(Comparator.naturalOrder()).get()); return changes; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/special/CastleWarsBandage.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/special/CastleWarsBandage.java index 19a1a63cb5..2885646fde 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/special/CastleWarsBandage.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/special/CastleWarsBandage.java @@ -61,7 +61,7 @@ public class CastleWarsBandage implements Effect changes.setStatChanges(new StatChange[]{hitPoints, runEnergy}); changes.setPositivity(Stream.of(changes.getStatChanges()) .map(StatChange::getPositivity) - .max(Comparator.comparing(Enum::ordinal)).get()); + .max(Comparator.naturalOrder()).get()); return changes; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/music/MusicPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/music/MusicPlugin.java index 075dd1315c..f116825347 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/music/MusicPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/music/MusicPlugin.java @@ -418,7 +418,7 @@ public class MusicPlugin extends Plugin if (tracks == null) { tracks = Arrays.stream(musicList.getDynamicChildren()) - .sorted(Comparator.comparing(Widget::getRelativeY)) + .sorted(Comparator.comparingInt(Widget::getRelativeY)) .collect(Collectors.toList()); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/questlist/QuestListPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/questlist/QuestListPlugin.java index 166ef3f669..6bf52d1a36 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/questlist/QuestListPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/questlist/QuestListPlugin.java @@ -336,7 +336,7 @@ public class QuestListPlugin extends Plugin { // Find all of the widgets that we care about, sorting by their Y value quests = Arrays.stream(list.getDynamicChildren()) - .sorted(Comparator.comparing(Widget::getRelativeY)) + .sorted(Comparator.comparingInt(Widget::getRelativeY)) .filter(w -> !QUEST_HEADERS.contains(w.getText())) .map(w -> new QuestWidget(w, Text.removeTags(w.getText()).toLowerCase())) .collect(Collectors.toList()); diff --git a/runelite-client/src/main/java/net/runelite/client/ui/ContainableFrame.java b/runelite-client/src/main/java/net/runelite/client/ui/ContainableFrame.java index 61ead031c5..9fee105dd4 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/ContainableFrame.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/ContainableFrame.java @@ -271,7 +271,7 @@ public class ContainableFrame extends JFrame { return Arrays.stream(GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()) .map(GraphicsDevice::getDefaultConfiguration) - .max(Comparator.comparing(config -> + .max(Comparator.comparingInt(config -> { Rectangle intersection = config.getBounds().intersection(getBounds()); return intersection.width * intersection.height;