MCPcopy Create free account
hub / github.com/F-Stack/f-stack / zslUpdateNode

Function zslUpdateNode

app/redis-6.2.6/src/defrag.c:181–195  ·  view source on GitHub ↗

Internal function used by zslDefrag */

Source from the content-addressed store, hash-verified

179
180/* Internal function used by zslDefrag */
181void zslUpdateNode(zskiplist *zsl, zskiplistNode *oldnode, zskiplistNode *newnode, zskiplistNode **update) {
182 int i;
183 for (i = 0; i < zsl->level; i++) {
184 if (update[i]->level[i].forward == oldnode)
185 update[i]->level[i].forward = newnode;
186 }
187 serverAssert(zsl->header!=oldnode);
188 if (newnode->level[0].forward) {
189 serverAssert(newnode->level[0].forward->backward==oldnode);
190 newnode->level[0].forward->backward = newnode;
191 } else {
192 serverAssert(zsl->tail==oldnode);
193 zsl->tail = newnode;
194 }
195}
196
197/* Defrag helper for sorted set.
198 * Update the robj pointer, defrag the skiplist struct and return the new score

Callers 1

zslDefragFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected