/* Compare the given object with the entry at the current position. */ int listTypeEqual(listTypeEntry *entry, robj *o) { if (entry->li->encoding == OBJ_ENCODING_QUICKLIST) { serverAssertWithInfo(NULL,o,sdsEncodedObject(o)); return quicklistCompare(entry->entry.zi,o->ptr,sdslen(o->ptr)); } else { serverPanic("Unknown list encoding"); } }
//比较列表类型的entry结构与对象的entry节点的值是否等,相等返回1 int listTypeEqual(listTypeEntry *entry, robj *o) { //对列表对象编码为quicklist类型操作 if (entry->li->encoding == OBJ_ENCODING_QUICKLIST) { //确保objptr的编码类型是简单动态字符串类型的RAW或EMBSTR serverAssertWithInfo(NULL,o,sdsEncodedObject(o)); //比较listTypeEntry结构中的entry值和给定的对象的值 return quicklistCompare(entry->entry.zi,o->ptr,sdslen(o->ptr)); } else { serverPanic("Unknown list encoding"); } }