break the while loop immediately when level is bigger than ZSKIPLIST_MAXLEVEL

This commit is contained in:
oldjunping 2024-08-07 03:59:54 +08:00
parent 731f2dc5c7
commit 3ab5af484c

View file

@ -126,7 +126,7 @@ void zslFree(zskiplist *zsl) {
int zslRandomLevel(void) {
static const int threshold = ZSKIPLIST_P*RAND_MAX;
int level = 1;
while (random() < threshold)
while (random() < threshold && level < ZSKIPLIST_MAXLEVEL)
level += 1;
return (level<ZSKIPLIST_MAXLEVEL) ? level : ZSKIPLIST_MAXLEVEL;
}