Redis-壓縮表-ziplistNext詳解

/* 返回p指向結點的後置結點
如果p指向ZIP_END,返回NULL;
如果p是表尾結點,返回NULLL */
unsigned char *ziplistNext(unsigned char *zl, unsigned char *p) {
    if (p[0] == ZIP_END) {
        return NULL;
    }

    /* 函數zipRawEntryLength:返回指針p所指向的節點佔用的字節數總和*/
    p += zipRawEntryLength(p); /* p指向下一個結點 */
    if (p[0] == ZIP_END) { /* 此時p指向表尾,也就是說一開始p指向最後一個結點*/
        return NULL;
    }

    return p;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章