Lines Matching refs:x

111     zskiplistNode *update[ZSKIPLIST_MAXLEVEL], *x;  in zslInsert()  local
116 x = zsl->header; in zslInsert()
120 while (x->level[i].forward && in zslInsert()
121 (x->level[i].forward->score < score || in zslInsert()
122 (x->level[i].forward->score == score && in zslInsert()
123 compareStringObjects(x->level[i].forward->obj,obj) < 0))) { in zslInsert()
124 rank[i] += x->level[i].span; in zslInsert()
125 x = x->level[i].forward; in zslInsert()
127 update[i] = x; in zslInsert()
142 x = zslCreateNode(level,score,obj); in zslInsert()
144 x->level[i].forward = update[i]->level[i].forward; in zslInsert()
145 update[i]->level[i].forward = x; in zslInsert()
148 x->level[i].span = update[i]->level[i].span - (rank[0] - rank[i]); in zslInsert()
157 x->backward = (update[0] == zsl->header) ? NULL : update[0]; in zslInsert()
158 if (x->level[0].forward) in zslInsert()
159 x->level[0].forward->backward = x; in zslInsert()
161 zsl->tail = x; in zslInsert()
163 return x; in zslInsert()
167 void zslDeleteNode(zskiplist *zsl, zskiplistNode *x, zskiplistNode **update) { in zslDeleteNode() argument
170 if (update[i]->level[i].forward == x) { in zslDeleteNode()
171 update[i]->level[i].span += x->level[i].span - 1; in zslDeleteNode()
172 update[i]->level[i].forward = x->level[i].forward; in zslDeleteNode()
177 if (x->level[0].forward) { in zslDeleteNode()
178 x->level[0].forward->backward = x->backward; in zslDeleteNode()
180 zsl->tail = x->backward; in zslDeleteNode()
189 zskiplistNode *update[ZSKIPLIST_MAXLEVEL], *x; in zslDelete() local
192 x = zsl->header; in zslDelete()
194 while (x->level[i].forward && in zslDelete()
195 (x->level[i].forward->score < score || in zslDelete()
196 (x->level[i].forward->score == score && in zslDelete()
197 compareStringObjects(x->level[i].forward->obj,obj) < 0))) in zslDelete()
198 x = x->level[i].forward; in zslDelete()
199 update[i] = x; in zslDelete()
203 x = x->level[0].forward; in zslDelete()
204 if (x && score == x->score && equalStringObjects(x->obj,obj)) { in zslDelete()
205 zslDeleteNode(zsl, x, update); in zslDelete()
206 zslFreeNode(x); in zslDelete()
222 zskiplistNode *x; in zslIsInRange() local
228 x = zsl->tail; in zslIsInRange()
229 if (x == NULL || !zslValueGteMin(x->score,range)) in zslIsInRange()
231 x = zsl->header->level[0].forward; in zslIsInRange()
232 if (x == NULL || !zslValueLteMax(x->score,range)) in zslIsInRange()
240 zskiplistNode *x; in zslFirstInRange() local
246 x = zsl->header; in zslFirstInRange()
249 while (x->level[i].forward && in zslFirstInRange()
250 !zslValueGteMin(x->level[i].forward->score,range)) in zslFirstInRange()
251 x = x->level[i].forward; in zslFirstInRange()
255 x = x->level[0].forward; in zslFirstInRange()
256 serverAssert(x != NULL); in zslFirstInRange()
259 if (!zslValueLteMax(x->score,range)) return NULL; in zslFirstInRange()
260 return x; in zslFirstInRange()
266 zskiplistNode *x; in zslLastInRange() local
272 x = zsl->header; in zslLastInRange()
275 while (x->level[i].forward && in zslLastInRange()
276 zslValueLteMax(x->level[i].forward->score,range)) in zslLastInRange()
277 x = x->level[i].forward; in zslLastInRange()
281 serverAssert(x != NULL); in zslLastInRange()
284 if (!zslValueGteMin(x->score,range)) return NULL; in zslLastInRange()
285 return x; in zslLastInRange()
293 zskiplistNode *update[ZSKIPLIST_MAXLEVEL], *x; in zslDeleteRangeByScore() local
297 x = zsl->header; in zslDeleteRangeByScore()
299 while (x->level[i].forward && (range->minex ? in zslDeleteRangeByScore()
300 x->level[i].forward->score <= range->min : in zslDeleteRangeByScore()
301 x->level[i].forward->score < range->min)) in zslDeleteRangeByScore()
302 x = x->level[i].forward; in zslDeleteRangeByScore()
303 update[i] = x; in zslDeleteRangeByScore()
307 x = x->level[0].forward; in zslDeleteRangeByScore()
310 while (x && in zslDeleteRangeByScore()
311 (range->maxex ? x->score < range->max : x->score <= range->max)) in zslDeleteRangeByScore()
313 zskiplistNode *next = x->level[0].forward; in zslDeleteRangeByScore()
314 zslDeleteNode(zsl,x,update); in zslDeleteRangeByScore()
315 dictDelete(dict,x->obj); in zslDeleteRangeByScore()
316 zslFreeNode(x); in zslDeleteRangeByScore()
318 x = next; in zslDeleteRangeByScore()
324 zskiplistNode *update[ZSKIPLIST_MAXLEVEL], *x; in zslDeleteRangeByLex() local
329 x = zsl->header; in zslDeleteRangeByLex()
331 while (x->level[i].forward && in zslDeleteRangeByLex()
332 !zslLexValueGteMin(x->level[i].forward->obj,range)) in zslDeleteRangeByLex()
333 x = x->level[i].forward; in zslDeleteRangeByLex()
334 update[i] = x; in zslDeleteRangeByLex()
338 x = x->level[0].forward; in zslDeleteRangeByLex()
341 while (x && zslLexValueLteMax(x->obj,range)) { in zslDeleteRangeByLex()
342 zskiplistNode *next = x->level[0].forward; in zslDeleteRangeByLex()
343 zslDeleteNode(zsl,x,update); in zslDeleteRangeByLex()
344 dictDelete(dict,x->obj); in zslDeleteRangeByLex()
345 zslFreeNode(x); in zslDeleteRangeByLex()
347 x = next; in zslDeleteRangeByLex()
355 zskiplistNode *update[ZSKIPLIST_MAXLEVEL], *x; in zslDeleteRangeByRank() local
359 x = zsl->header; in zslDeleteRangeByRank()
361 while (x->level[i].forward && (traversed + x->level[i].span) < start) { in zslDeleteRangeByRank()
362 traversed += x->level[i].span; in zslDeleteRangeByRank()
363 x = x->level[i].forward; in zslDeleteRangeByRank()
365 update[i] = x; in zslDeleteRangeByRank()
369 x = x->level[0].forward; in zslDeleteRangeByRank()
370 while (x && traversed <= end) { in zslDeleteRangeByRank()
371 zskiplistNode *next = x->level[0].forward; in zslDeleteRangeByRank()
372 zslDeleteNode(zsl,x,update); in zslDeleteRangeByRank()
373 dictDelete(dict,x->obj); in zslDeleteRangeByRank()
374 zslFreeNode(x); in zslDeleteRangeByRank()
377 x = next; in zslDeleteRangeByRank()
387 zskiplistNode *x; in zslGetRank() local
391 x = zsl->header; in zslGetRank()
393 while (x->level[i].forward && in zslGetRank()
394 (x->level[i].forward->score < score || in zslGetRank()
395 (x->level[i].forward->score == score && in zslGetRank()
396 compareStringObjects(x->level[i].forward->obj,o) <= 0))) { in zslGetRank()
397 rank += x->level[i].span; in zslGetRank()
398 x = x->level[i].forward; in zslGetRank()
402 if (x->obj && equalStringObjects(x->obj,o)) { in zslGetRank()
411 zskiplistNode *x; in zslGetElementByRank() local
415 x = zsl->header; in zslGetElementByRank()
417 while (x->level[i].forward && (traversed + x->level[i].span) <= rank) in zslGetElementByRank()
419 traversed += x->level[i].span; in zslGetElementByRank()
420 x = x->level[i].forward; in zslGetElementByRank()
423 return x; in zslGetElementByRank()
564 zskiplistNode *x; in zslIsInLexRange() local
571 x = zsl->tail; in zslIsInLexRange()
572 if (x == NULL || !zslLexValueGteMin(x->obj,range)) in zslIsInLexRange()
574 x = zsl->header->level[0].forward; in zslIsInLexRange()
575 if (x == NULL || !zslLexValueLteMax(x->obj,range)) in zslIsInLexRange()
583 zskiplistNode *x; in zslFirstInLexRange() local
589 x = zsl->header; in zslFirstInLexRange()
592 while (x->level[i].forward && in zslFirstInLexRange()
593 !zslLexValueGteMin(x->level[i].forward->obj,range)) in zslFirstInLexRange()
594 x = x->level[i].forward; in zslFirstInLexRange()
598 x = x->level[0].forward; in zslFirstInLexRange()
599 serverAssert(x != NULL); in zslFirstInLexRange()
602 if (!zslLexValueLteMax(x->obj,range)) return NULL; in zslFirstInLexRange()
603 return x; in zslFirstInLexRange()
609 zskiplistNode *x; in zslLastInLexRange() local
615 x = zsl->header; in zslLastInLexRange()
618 while (x->level[i].forward && in zslLastInLexRange()
619 zslLexValueLteMax(x->level[i].forward->obj,range)) in zslLastInLexRange()
620 x = x->level[i].forward; in zslLastInLexRange()
624 serverAssert(x != NULL); in zslLastInLexRange()
627 if (!zslLexValueGteMin(x->obj,range)) return NULL; in zslLastInLexRange()
628 return x; in zslLastInLexRange()