From: antirez <antirez@gmail.com>
Date: Wed, 6 Jan 2010 00:51:30 +0000 (-0500)
Subject: fixed a bug in bgsave when VM is off but still it was testing for obj->storage field
X-Git-Url: https://git.saurik.com/redis.git/commitdiff_plain/38823f081799b5bcdbb07fd56478f07cb865640d?ds=inline

fixed a bug in bgsave when VM is off but still it was testing for obj->storage field
---

diff --git a/redis.c b/redis.c
index e427ab60..56b5895d 100644
--- a/redis.c
+++ b/redis.c
@@ -2888,7 +2888,7 @@ static int rdbSave(char *filename) {
             }
             /* Save the key and associated value. This requires special
              * handling if the value is swapped out. */
-            if (key->storage == REDIS_VM_MEMORY) {
+            if (!server.vm_enabled || key->storage == REDIS_VM_MEMORY) {
                 /* Save type, key, value */
                 if (rdbSaveType(fp,o->type) == -1) goto werr;
                 if (rdbSaveStringObject(fp,key) == -1) goto werr;
@@ -6532,7 +6532,7 @@ static int rewriteAppendOnlyFile(char *filename) {
             int swapped;
 
             key = dictGetEntryKey(de);
-            if (key->storage == REDIS_VM_MEMORY) {
+            if (!server.vm_enabled || key->storage == REDIS_VM_MEMORY) {
                 o = dictGetEntryVal(de);
                 swapped = 0;
             } else {
@@ -6889,7 +6889,7 @@ static int vmSwapObject(robj *key, robj *val) {
 static robj *vmGenericLoadObject(robj *key, int preview) {
     robj *val;
 
-    assert(key->storage == REDIS_VM_SWAPPED);
+    redisAssert(key->storage == REDIS_VM_SWAPPED);
     if (fseeko(server.vm_fp,key->vm.page*server.vm_page_size,SEEK_SET) == -1) {
         redisLog(REDIS_WARNING,
             "Unrecoverable VM problem in vmLoadObject(): can't seek: %s",