1
0
Fork 0
mirror of https://github.com/EdgeTX/edgetx.git synced 2025-07-20 06:45:08 +03:00

Simulators and firmwares unregistered when application ends (fixes memory leaks)

This commit is contained in:
Damjan Adamic 2015-10-24 20:10:17 +02:00
parent ee4ea18a3e
commit 2a54bee20b
8 changed files with 20 additions and 9 deletions

View file

@ -156,7 +156,8 @@ int main(int argc, char *argv[])
delete splash; delete splash;
delete mainWin; delete mainWin;
unregisterFirmwares(); unregisterSimulators();
unregisterOpenTxFirmwares();
unregisterEEpromInterfaces(); unregisterEEpromInterfaces();
#if defined(JOYSTICKS) || defined(SIMU_AUDIO) #if defined(JOYSTICKS) || defined(SIMU_AUDIO)

View file

@ -1642,13 +1642,6 @@ QList<Firmware *> firmwares;
Firmware * default_firmware_variant; Firmware * default_firmware_variant;
Firmware * current_firmware_variant; Firmware * current_firmware_variant;
void unregisterFirmwares()
{
foreach (Firmware * f, firmwares) {
delete f;
}
}
void ShowEepromErrors(QWidget *parent, const QString &title, const QString &mainMessage, unsigned long errorsFound) void ShowEepromErrors(QWidget *parent, const QString &title, const QString &mainMessage, unsigned long errorsFound)
{ {
std::bitset<NUM_ERRORS> errors((unsigned long long)errorsFound); std::bitset<NUM_ERRORS> errors((unsigned long long)errorsFound);

View file

@ -1489,7 +1489,7 @@ inline void applyStickModeToModel(ModelData &model, unsigned int mode)
void registerEEpromInterfaces(); void registerEEpromInterfaces();
void unregisterEEpromInterfaces(); void unregisterEEpromInterfaces();
void registerOpenTxFirmwares(); void registerOpenTxFirmwares();
void unregisterFirmwares(); void unregisterOpenTxFirmwares();
enum EepromLoadErrors { enum EepromLoadErrors {
NO_ERROR, NO_ERROR,

View file

@ -1436,3 +1436,9 @@ void registerOpenTxFirmwares()
current_firmware_variant = default_firmware_variant; current_firmware_variant = default_firmware_variant;
} }
void unregisterOpenTxFirmwares()
{
foreach (Firmware * f, firmwares) {
delete f;
}
}

View file

@ -130,5 +130,6 @@ class OpenTxFirmware: public Firmware {
}; };
void registerOpenTxFirmwares(); void registerOpenTxFirmwares();
void unregisterOpenTxFirmwares();
#endif #endif

View file

@ -81,3 +81,9 @@ SimulatorFactory *getSimulatorFactory(const QString &name)
return NULL; return NULL;
} }
void unregisterSimulators()
{
foreach(SimulatorFactory *factory, registered_simulators) {
delete factory;
}
}

View file

@ -118,6 +118,7 @@ class SimulatorFactory {
}; };
void registerSimulators(); void registerSimulators();
void unregisterSimulators();
SimulatorFactory *getSimulatorFactory(const QString &name); SimulatorFactory *getSimulatorFactory(const QString &name);
extern QMap<QString, SimulatorFactory *> registered_simulators; extern QMap<QString, SimulatorFactory *> registered_simulators;

View file

@ -176,6 +176,9 @@ int main(int argc, char *argv[])
delete dialog; delete dialog;
unregisterSimulators();
unregisterOpenTxFirmwares();
#if defined(JOYSTICKS) || defined(SIMU_AUDIO) #if defined(JOYSTICKS) || defined(SIMU_AUDIO)
SDL_Quit(); SDL_Quit();
#endif #endif