Stop unnecessarily creating eeprom file
This commit is contained in:
@@ -59,29 +59,31 @@ FORCE_INLINE size_t getSaveSize(SaveType saveType) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PIF::LoadEeprom(SaveType saveType, fs::path path) {
|
void PIF::LoadEeprom(SaveType saveType, fs::path path) {
|
||||||
if (eeprom)
|
if(saveType == SAVE_EEPROM_16k || saveType == SAVE_EEPROM_4k) {
|
||||||
free(eeprom);
|
if (eeprom)
|
||||||
|
free(eeprom);
|
||||||
|
|
||||||
eepromSize = getSaveSize(saveType);
|
eepromSize = getSaveSize(saveType);
|
||||||
eeprom = (u8*)calloc(eepromSize, 1);
|
eeprom = (u8 *) calloc(eepromSize, 1);
|
||||||
eepromPath = path.replace_extension(".eeprom").string();
|
eepromPath = path.replace_extension(".eeprom").string();
|
||||||
FILE* f = fopen(eepromPath.c_str(), "rb");
|
FILE *f = fopen(eepromPath.c_str(), "rb");
|
||||||
if (!f) {
|
if (!f) {
|
||||||
f = fopen(eepromPath.c_str(), "wb");
|
f = fopen(eepromPath.c_str(), "wb");
|
||||||
fwrite(eeprom, 1, eepromSize, f);
|
fwrite(eeprom, 1, eepromSize, f);
|
||||||
|
fclose(f);
|
||||||
|
f = fopen(eepromPath.c_str(), "rb");
|
||||||
|
}
|
||||||
|
|
||||||
|
fseek(f, 0, SEEK_END);
|
||||||
|
size_t actualSize = ftell(f);
|
||||||
|
fseek(f, 0, SEEK_SET);
|
||||||
|
if (actualSize != eepromSize) {
|
||||||
|
Util::panic("Corrupt eeprom!");
|
||||||
|
}
|
||||||
|
|
||||||
|
fread(eeprom, 1, eepromSize, f);
|
||||||
fclose(f);
|
fclose(f);
|
||||||
f = fopen(eepromPath.c_str(), "rb");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fseek(f, 0, SEEK_END);
|
|
||||||
size_t actualSize = ftell(f);
|
|
||||||
fseek(f, 0, SEEK_SET);
|
|
||||||
if (actualSize != eepromSize) {
|
|
||||||
Util::panic("Corrupt eeprom!");
|
|
||||||
}
|
|
||||||
|
|
||||||
fread(eeprom, 1, eepromSize, f);
|
|
||||||
fclose(f);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PIF::~PIF() {
|
PIF::~PIF() {
|
||||||
|
|||||||
Reference in New Issue
Block a user