From 0297f7684c2187d812213acb5dbb7867dbd44512 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 21 Jul 2018 22:54:14 -0400 Subject: [PATCH] mixins: optimize widget isHidden and getParent --- .../java/net/runelite/mixins/RSWidgetMixin.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSWidgetMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSWidgetMixin.java index 3b197f10ed..4e4c9008f0 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSWidgetMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSWidgetMixin.java @@ -119,6 +119,13 @@ public abstract class RSWidgetMixin implements RSWidget return rsParentId; } + final int id = getId(); + if (TO_GROUP(id) == client.getWidgetRoot()) + { + // this is a root widget + return -1; + } + int parentId = rl$parentId; if (parentId != -1) { @@ -130,7 +137,7 @@ public abstract class RSWidgetMixin implements RSWidget // check the parent in the component table HashTable componentTable = client.getComponentTable(); WidgetNode widgetNode = componentTable.get(parentId); - if (widgetNode == null || widgetNode.getId() != TO_GROUP(getId())) + if (widgetNode == null || widgetNode.getId() != TO_GROUP(id)) { // invalidate parent rl$parentId = -1; @@ -191,6 +198,11 @@ public abstract class RSWidgetMixin implements RSWidget @Override public boolean isHidden() { + if (isSelfHidden()) + { + return true; + } + Widget parent = getParent(); if (parent == null) @@ -208,7 +220,7 @@ public abstract class RSWidgetMixin implements RSWidget return true; } - return isSelfHidden(); + return false; } @Inject