X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/cc2750670f1cb2fafde3e7d1a340f6674dab1749..419e1cca74102440d5ce174fbbf36d81a9b8956a:/src/rdb.c diff --git a/src/rdb.c b/src/rdb.c index 83fe81e5..02317fda 100644 --- a/src/rdb.c +++ b/src/rdb.c @@ -399,13 +399,9 @@ off_t rdbSavedObjectLen(robj *o) { * On error -1 is returned. * On success if the key was actaully saved 1 is returned, otherwise 0 * is returned (the key was already expired). */ -int rdbSaveKeyValuePair(FILE *fp, redisDb *db, robj *key, robj *val, - time_t now) +int rdbSaveKeyValuePair(FILE *fp, robj *key, robj *val, + time_t expiretime, time_t now) { - time_t expiretime; - - expiretime = getExpire(db,key); - /* Save the expire time */ if (expiretime != -1) { /* If this key is already expired skip it */ @@ -460,9 +456,11 @@ int rdbSave(char *filename) { while((de = dictNext(di)) != NULL) { sds keystr = dictGetEntryKey(de); robj key, *o = dictGetEntryVal(de); + time_t expire; initStaticStringObject(key,keystr); - if (rdbSaveKeyValuePair(fp,db,&key,o,now) == -1) goto werr; + expire = getExpire(db,&key); + if (rdbSaveKeyValuePair(fp,&key,o,expire,now) == -1) goto werr; } dictReleaseIterator(di); }