]> git.saurik.com Git - redis.git/commitdiff
rioInitWithFile nad rioInitWithBuffer functions now take a rio structure pointer...
authorantirez <antirez@gmail.com>
Thu, 22 Sep 2011 14:00:40 +0000 (16:00 +0200)
committerantirez <antirez@gmail.com>
Thu, 22 Sep 2011 14:00:40 +0000 (16:00 +0200)
src/aof.c
src/cluster.c
src/rdb.c
src/rio.c
src/rio.h

index b86357de59ebabe1e73c9167ba54e8b667cd9bb3..0dcf905eef99eb2c01cca60ae9b5fd8346163f61 100644 (file)
--- a/src/aof.c
+++ b/src/aof.c
@@ -421,7 +421,7 @@ int rewriteAppendOnlyFile(char *filename) {
         return REDIS_ERR;
     }
 
-    aof = rioInitWithFile(fp);
+    rioInitWithFile(&aof,fp);
     for (j = 0; j < server.dbnum; j++) {
         char selectcmd[] = "*2\r\n$6\r\nSELECT\r\n";
         redisDb *db = server.db+j;
index c6fc44b1a9f4ce52c7ea250c6c7cf0415ed97faa..13eb7b5bb44158d6e834d8293ca7b8221434daf1 100644 (file)
@@ -1402,7 +1402,7 @@ void restoreCommand(redisClient *c) {
         return;
     }
 
-    payload = rioInitWithBuffer(c->argv[3]->ptr);
+    rioInitWithBuffer(&payload,c->argv[3]->ptr);
     if (((type = rdbLoadObjectType(&payload)) == -1) ||
         ((obj = rdbLoadObject(type,&payload)) == NULL))
     {
@@ -1453,7 +1453,7 @@ void migrateCommand(redisClient *c) {
         return;
     }
 
-    cmd = rioInitWithBuffer(sdsempty());
+    rioInitWithBuffer(&cmd,sdsempty());
     redisAssert(rioWriteBulkCount(&cmd,'*',2));
     redisAssert(rioWriteBulkString(&cmd,"SELECT",6));
     redisAssert(rioWriteBulkLongLong(&cmd,dbid));
@@ -1467,7 +1467,7 @@ void migrateCommand(redisClient *c) {
 
     /* Finally the last argument that is the serailized object payload
      * in the form: <type><rdb-serialized-object>. */
-    payload = rioInitWithBuffer(sdsempty());
+    rioInitWithBuffer(&payload,sdsempty());
     redisAssert(rdbSaveObjectType(&payload,o));
     redisAssert(rdbSaveObject(&payload,o) != -1);
     redisAssert(rioWriteBulkString(&cmd,payload.io.buffer.ptr,sdslen(payload.io.buffer.ptr)));
@@ -1544,7 +1544,7 @@ void dumpCommand(redisClient *c) {
 
     /* Serialize the object in a RDB-like format. It consist of an object type
      * byte followed by the serialized object. This is understood by RESTORE. */
-    payload = rioInitWithBuffer(sdsempty());
+    rioInitWithBuffer(&payload,sdsempty());
     redisAssert(rdbSaveObjectType(&payload,o));
     redisAssert(rdbSaveObject(&payload,o));
 
index 9bf470aa26e6a79aba46680c26a0a9a6cbd70d48..be369636d4b4f035fb3feb14d164780f1d0d85ae 100644 (file)
--- a/src/rdb.c
+++ b/src/rdb.c
@@ -597,7 +597,7 @@ int rdbSave(char *filename) {
         return REDIS_ERR;
     }
 
-    rdb = rioInitWithFile(fp);
+    rioInitWithFile(&rdb,fp);
     if (rdbWriteRaw(&rdb,"REDIS0002",9) == -1) goto werr;
 
     for (j = 0; j < server.dbnum; j++) {
@@ -948,7 +948,7 @@ int rdbLoad(char *filename) {
 
     fp = fopen(filename,"r");
     if (!fp) return REDIS_ERR;
-    rdb = rioInitWithFile(fp);
+    rioInitWithFile(&rdb,fp);
     if (rioRead(&rdb,buf,9) == 0) goto eoferr;
     buf[9] = '\0';
     if (memcmp(buf,"REDIS",5) != 0) {
index ebe24a3d7419eed877ee0e381fc8c72b1e3314cc..f695a482466341f482835830237ac6dc17be2c45 100644 (file)
--- a/src/rio.c
+++ b/src/rio.c
@@ -52,16 +52,15 @@ static const rio rioFileIO = {
     { { NULL, 0 } } /* union for io-specific vars */
 };
 
-rio rioInitWithFile(FILE *fp) {
-    rio r = rioFileIO;
-    r.io.file.fp = fp;
-    return r;
+void rioInitWithFile(rio *r, FILE *fp) {
+    *r = rioFileIO;
+    r->io.file.fp = fp;
 }
-rio rioInitWithBuffer(sds s) {
-    rio r = rioBufferIO;
-    r.io.buffer.ptr = s;
-    r.io.buffer.pos = 0;
-    return r;
+
+void rioInitWithBuffer(rio *r, sds s) {
+    *r = rioBufferIO;
+    r->io.buffer.ptr = s;
+    r->io.buffer.pos = 0;
 }
 
 /* Write multi bulk count in the format: "*<count>\r\n". */
index 654423810025b257291a59af6543a72910cf56ad..2a830eb575aacb751f5b24e29f4a5d1cafaddf09 100644 (file)
--- a/src/rio.h
+++ b/src/rio.h
@@ -29,8 +29,8 @@ typedef struct _rio rio;
 #define rioWrite(rio,buf,len) ((rio)->write((rio),(buf),(len)))
 #define rioRead(rio,buf,len) ((rio)->read((rio),(buf),(len)))
 
-rio rioInitWithFile(FILE *fp);
-rio rioInitWithBuffer(sds s);
+void rioInitWithFile(rio *r, FILE *fp);
+void rioInitWithBuffer(rio *r, sds s);
 
 size_t rioWriteBulkCount(rio *r, char prefix, int count);
 size_t rioWriteBulkString(rio *r, const char *buf, size_t len);