diff --git a/desmume/src/mc.cpp b/desmume/src/mc.cpp index ccb861cfd..30a68e639 100644 --- a/desmume/src/mc.cpp +++ b/desmume/src/mc.cpp @@ -408,7 +408,7 @@ void BackupDevice::reset_hardware() void BackupDevice::reset() { reset_hardware(); - data.resize(0); + resize(0); data_autodetect.resize(0); addr_size = 0; loadfile(); @@ -420,7 +420,7 @@ void BackupDevice::reset() int savetype = save_types[CommonSettings.manualBackupType][0]; int savesize = save_types[CommonSettings.manualBackupType][1]; ensure((u32)savesize); //expand properly if necessary - data.resize(savesize); //truncate if necessary + resize(savesize); //truncate if necessary addr_size = addr_size_for_old_save_type(savetype); flush(); } @@ -675,12 +675,17 @@ void BackupDevice::ensure(u32 addr) u32 size = data.size(); if(sizeaddr_size = addr_size; - this->data.resize(datasize); + addr_size = addr_size; + resize(datasize); memcpy(&this->data[0],data,datasize); //dump back out as a dsv, just to keep things sane @@ -880,7 +885,7 @@ bool BackupDevice::load_no_gba(const char *fname) size = no_gba_fillLeft(size); //printf("--- new size after fill %i byte(s)\n", size); raw_applyUserSettings(size); - data.resize(size); + resize(size); for (u32 tt = 0; tt < size; tt++) data[tt] = out_buf[tt]; @@ -995,7 +1000,7 @@ void BackupDevice::loadfile() read32le(&info.mem_size,inf); //establish the save data - data.resize(info.size); + resize(info.size); inf->fseek(0, SEEK_SET); if(info.size>0) inf->fread(&data[0],info.size); //read all the raw data we have @@ -1092,7 +1097,7 @@ void BackupDevice::raw_applyUserSettings(u32& size) if(CommonSettings.manualBackupType == MC_TYPE_AUTODETECT) { addr_size = addr_size_for_old_save_size(size); - data.resize(size); + resize(size); } else { @@ -1100,7 +1105,7 @@ void BackupDevice::raw_applyUserSettings(u32& size) int savesize = save_types[CommonSettings.manualBackupType][1]; addr_size = addr_size_for_old_save_type(savetype); if((u32)savesizefread((char*)&info.mem_size,4); //establish the save data - data.resize(info.size); + resize(info.size); is->fseek(0, SEEK_SET); if(info.size>0) is->fread((char*)&data[0],info.size); diff --git a/desmume/src/mc.h b/desmume/src/mc.h index c05122cec..92560777f 100644 --- a/desmume/src/mc.h +++ b/desmume/src/mc.h @@ -157,9 +157,11 @@ private: void loadfile(); bool _loadfile(const char *fname); void ensure(u32 addr); - bool flushPending, lazyFlushPending; + +private: + void resize(u32 size); }; #define NDS_FW_SIZE_V1 (256 * 1024) /* size of fw memory on nds v1 */