Skip to content

Commit e65c26d

Browse files
committed
Fix npe when removing a null entity
1 parent b025cce commit e65c26d

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

patches/server/0002-Sakura-Utils.patch

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,10 @@ index 0000000000000000000000000000000000000000..00fe34d827c01d8772fa9506de75ced7
9999
+}
100100
diff --git a/src/main/java/me/samsuik/sakura/utils/collections/UnorderedIndexedList.java b/src/main/java/me/samsuik/sakura/utils/collections/UnorderedIndexedList.java
101101
new file mode 100644
102-
index 0000000000000000000000000000000000000000..7bdd93f1078dde97233a9096d0b7738dae061ae4
102+
index 0000000000000000000000000000000000000000..be4f5b4999c85fc6765e37cc9af0a87292327dbf
103103
--- /dev/null
104104
+++ b/src/main/java/me/samsuik/sakura/utils/collections/UnorderedIndexedList.java
105-
@@ -0,0 +1,63 @@
105+
@@ -0,0 +1,65 @@
106106
+package me.samsuik.sakura.utils.collections;
107107
+
108108
+import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap;
@@ -138,14 +138,14 @@ index 0000000000000000000000000000000000000000..7bdd93f1078dde97233a9096d0b7738d
138138
+ if (index != tail) {
139139
+ final T tailObj = a[tail];
140140
+ if (tailObj != null)
141-
+ elementToIndex.put(tailObj.hashCode(), index);
141+
+ elementToIndex.put(tailObj.hashCode(), index);
142142
+ a[index] = tailObj;
143143
+ }
144144
+
145145
+ if (at != null)
146-
+ elementToIndex.remove(at.hashCode());
146+
+ elementToIndex.remove(at.hashCode());
147147
+ a[tail] = null;
148-
+ size--;
148+
+ size = tail;
149149
+ return at;
150150
+ }
151151
+
@@ -157,6 +157,8 @@ index 0000000000000000000000000000000000000000..7bdd93f1078dde97233a9096d0b7738d
157157
+
158158
+ @Override
159159
+ public int indexOf(final Object k) {
160+
+ if (k == null) return -1;
161+
+ // entities uses their id as a hashcode
160162
+ return elementToIndex.get(k.hashCode());
161163
+ }
162164
+

0 commit comments

Comments
 (0)