diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 0f21488d6..221ca3d64 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -364,7 +364,8 @@ int OpenTxEepromInterface::getSize(const ModelData &model) QByteArray tmp(Boards::getEEpromSize(Board::BOARD_UNKNOWN), 0); efile->EeFsCreate((uint8_t *) tmp.data(), Boards::getEEpromSize(Board::BOARD_UNKNOWN), board, 255/*version max*/); - OpenTxModelData open9xModel((ModelData &) model, board, 255/*version max*/, getCurrentFirmware()->getVariantNumber()); + ModelData srcCopy(model); // work on a copy of model data, because Export() may modify it! + OpenTxModelData open9xModel(srcCopy, board, 255/*version max*/, getCurrentFirmware()->getVariantNumber()); QByteArray eeprom; open9xModel.Export(eeprom); @@ -383,7 +384,8 @@ int OpenTxEepromInterface::getSize(const GeneralSettings &settings) QByteArray tmp(Boards::getEEpromSize(Board::BOARD_UNKNOWN), 0); efile->EeFsCreate((uint8_t *) tmp.data(), Boards::getEEpromSize(Board::BOARD_UNKNOWN), board, 255); - OpenTxGeneralData open9xGeneral((GeneralSettings &) settings, board, 255, getCurrentFirmware()->getVariantNumber()); + GeneralSettings srcCopy(settings); // work on a copy of settings data, because Export() may modify it! + OpenTxGeneralData open9xGeneral(srcCopy, board, 255, getCurrentFirmware()->getVariantNumber()); // open9xGeneral.Dump(); QByteArray eeprom;