@@ -104,13 +104,16 @@ private void append(long id, long key1, long key2) {
104104 keys .set (keyOffset + 1 , key2 );
105105 }
106106
107- private void reset (long key1 , long key2 , long id ) {
107+ private void reset (long id ) {
108+ final LongArray keys = this .keys ;
109+ final long keyOffset = id * 2 ;
110+ final long key1 = keys .get (keyOffset );
111+ final long key2 = keys .get (keyOffset + 1 );
108112 final long slot = slot (hash (key1 , key2 ), mask );
109113 for (long index = slot ;; index = nextSlot (index , mask )) {
110114 final long curId = id (index );
111115 if (curId == -1 ) { // means unset
112116 setId (index , id );
113- append (id , key1 , key2 );
114117 break ;
115118 }
116119 }
@@ -134,10 +137,7 @@ public long add(long key1, long key2) {
134137 protected void removeAndAdd (long index ) {
135138 final long id = getAndSetId (index , -1 );
136139 assert id >= 0 ;
137- long keyOffset = id * 2 ;
138- final long key1 = keys .getAndSet (keyOffset , 0 );
139- final long key2 = keys .getAndSet (keyOffset + 1 , 0 );
140- reset (key1 , key2 , id );
140+ reset (id );
141141 }
142142
143143 @ Override
0 commit comments