diff --git a/companion/src/mainwindow.cpp b/companion/src/mainwindow.cpp index 4f448b36d..9c8818c82 100644 --- a/companion/src/mainwindow.cpp +++ b/companion/src/mainwindow.cpp @@ -1218,34 +1218,29 @@ bool MainWindow::isValidEEPROM(QString eepromfile) return false; } file.close(); - RadioData radioData; - if (!LoadEeprom(radioData, eeprom, eeprom_size)) { - free(eeprom); - return false; - } else { - free(eeprom); - return true; - } - } else if (fileType==FILE_TYPE_BIN) { //read binary + RadioData * radioData = new RadioData(); + bool result = LoadEeprom(*radioData, eeprom, eeprom_size); + free(eeprom); + delete radioData; + return result; + } + else if (fileType==FILE_TYPE_BIN) { //read binary if (!file.open(QFile::ReadOnly)) return false; eeprom_size = file.size(); uint8_t *eeprom = (uint8_t *)malloc(eeprom_size); memset(eeprom, 0, eeprom_size); - long result = file.read((char*)eeprom, eeprom_size); + long read = file.read((char*)eeprom, eeprom_size); file.close(); - if (result != eeprom_size) { + if (read != eeprom_size) { free(eeprom); return false; } - RadioData radioData; - if (!LoadEeprom(radioData, eeprom, eeprom_size)) { - free(eeprom); - return false; - } else { - free(eeprom); - return true; - } + RadioData * radioData = new RadioData(); + bool result = LoadEeprom(*radioData, eeprom, eeprom_size); + free(eeprom); + delete radioData; + return result; } return false; }