64 bit RDB_OPCODE_RESIZEDB in rdb saving

this complication in the code is from times were rdbSaveLen didn't support 64 bits.
This commit is contained in:
Oran Agra 2018-06-19 16:43:12 +03:00
parent 44571088d8
commit 5cd3c9529d

View File

@ -1127,13 +1127,9 @@ int rdbSaveRio(rio *rdb, int *error, int flags, rdbSaveInfo *rsi) {
* is currently the largest type we are able to represent in RDB sizes. * is currently the largest type we are able to represent in RDB sizes.
* However this does not limit the actual size of the DB to load since * However this does not limit the actual size of the DB to load since
* these sizes are just hints to resize the hash tables. */ * these sizes are just hints to resize the hash tables. */
uint32_t db_size, expires_size; uint64_t db_size, expires_size;
db_size = (dictSize(db->dict) <= UINT32_MAX) ? db_size = dictSize(db->dict);
dictSize(db->dict) : expires_size = dictSize(db->expires);
UINT32_MAX;
expires_size = (dictSize(db->expires) <= UINT32_MAX) ?
dictSize(db->expires) :
UINT32_MAX;
if (rdbSaveType(rdb,RDB_OPCODE_RESIZEDB) == -1) goto werr; if (rdbSaveType(rdb,RDB_OPCODE_RESIZEDB) == -1) goto werr;
if (rdbSaveLen(rdb,db_size) == -1) goto werr; if (rdbSaveLen(rdb,db_size) == -1) goto werr;
if (rdbSaveLen(rdb,expires_size) == -1) goto werr; if (rdbSaveLen(rdb,expires_size) == -1) goto werr;