From 2ddc4865c03e35a67e57dab6614b668e46ce0099 Mon Sep 17 00:00:00 2001 From: Nicolas Peugnet Date: Tue, 9 Jan 2024 18:30:54 +0100 Subject: Make WhisperTargetList work for real - The takenIds bitset was never updated - The 30th ID could not be used - The takenIds calculation in get was reversed --- src/main/java/se/lublin/humla/model/WhisperTargetList.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/se/lublin/humla/model/WhisperTargetList.java b/src/main/java/se/lublin/humla/model/WhisperTargetList.java index e76cc0a..172999a 100644 --- a/src/main/java/se/lublin/humla/model/WhisperTargetList.java +++ b/src/main/java/se/lublin/humla/model/WhisperTargetList.java @@ -42,7 +42,7 @@ public class WhisperTargetList { */ public byte append(WhisperTarget target) { byte freeId = -1; - for (byte i = TARGET_MIN; i < TARGET_MAX; i++) { + for (byte i = TARGET_MIN; i <= TARGET_MAX; i++) { if ((mTakenIds & (1 << i)) == 0) { freeId = i; break; @@ -50,13 +50,14 @@ public class WhisperTargetList { } if (freeId != -1) { mActiveTargets[freeId - TARGET_MIN] = target; + mTakenIds |= (1 << freeId); } return freeId; } public WhisperTarget get(byte id) { - if ((mTakenIds & (1 << id)) > 0) + if ((mTakenIds & (1 << id)) == 0) return null; return mActiveTargets[id - TARGET_MIN]; } -- cgit v1.2.3