use list wrapper functions in computing the dataset digest

This commit is contained in:
Pieter Noordhuis 2010-05-31 23:35:51 +02:00
parent d71b98650f
commit dc845730a9

14
redis.c
View File

@ -10923,16 +10923,14 @@ static void computeDatasetDigest(unsigned char *final) {
if (o->type == REDIS_STRING) { if (o->type == REDIS_STRING) {
mixObjectDigest(digest,o); mixObjectDigest(digest,o);
} else if (o->type == REDIS_LIST) { } else if (o->type == REDIS_LIST) {
list *list = o->ptr; lIterator *li = lInitIterator(o,0,REDIS_TAIL);
listNode *ln; lEntry entry;
listIter li; while(lNext(li,&entry)) {
robj *eleobj = lGet(&entry);
listRewind(list,&li);
while((ln = listNext(&li))) {
robj *eleobj = listNodeValue(ln);
mixObjectDigest(digest,eleobj); mixObjectDigest(digest,eleobj);
decrRefCount(eleobj);
} }
lReleaseIterator(li);
} else if (o->type == REDIS_SET) { } else if (o->type == REDIS_SET) {
dict *set = o->ptr; dict *set = o->ptr;
dictIterator *di = dictGetIterator(set); dictIterator *di = dictGetIterator(set);