Commit 942d404a authored by Don Gagne's avatar Don Gagne

Fix static object lifetime crash on iOS

parent 2fd104fa
...@@ -1449,7 +1449,7 @@ const int VehicleBatteryFactGroup::_currentUnavailable = -1; ...@@ -1449,7 +1449,7 @@ const int VehicleBatteryFactGroup::_currentUnavailable = -1;
const double VehicleBatteryFactGroup::_temperatureUnavailable = -1.0; const double VehicleBatteryFactGroup::_temperatureUnavailable = -1.0;
const int VehicleBatteryFactGroup::_cellCountUnavailable = -1.0; const int VehicleBatteryFactGroup::_cellCountUnavailable = -1.0;
SettingsFact VehicleBatteryFactGroup::_percentRemainingAnnounceFact (_settingsGroup, _percentRemainingAnnounceFactName, FactMetaData::valueTypeInt32, _percentRemainingAnnounceDefault); SettingsFact* VehicleBatteryFactGroup::_percentRemainingAnnounceFact = NULL;
VehicleBatteryFactGroup::VehicleBatteryFactGroup(QObject* parent) VehicleBatteryFactGroup::VehicleBatteryFactGroup(QObject* parent)
: FactGroup(1000, ":/json/Vehicle/BatteryFact.json", parent) : FactGroup(1000, ":/json/Vehicle/BatteryFact.json", parent)
...@@ -1461,13 +1461,13 @@ VehicleBatteryFactGroup::VehicleBatteryFactGroup(QObject* parent) ...@@ -1461,13 +1461,13 @@ VehicleBatteryFactGroup::VehicleBatteryFactGroup(QObject* parent)
, _temperatureFact (0, _temperatureFactName, FactMetaData::valueTypeDouble) , _temperatureFact (0, _temperatureFactName, FactMetaData::valueTypeDouble)
, _cellCountFact (0, _cellCountFactName, FactMetaData::valueTypeInt32) , _cellCountFact (0, _cellCountFactName, FactMetaData::valueTypeInt32)
{ {
_addFact(&_voltageFact, _voltageFactName); _addFact(&_voltageFact, _voltageFactName);
_addFact(&_percentRemainingFact, _percentRemainingFactName); _addFact(&_percentRemainingFact, _percentRemainingFactName);
_addFact(&_percentRemainingAnnounceFact, _percentRemainingAnnounceFactName); _addFact(percentRemainingAnnounce(), _percentRemainingAnnounceFactName);
_addFact(&_mahConsumedFact, _mahConsumedFactName); _addFact(&_mahConsumedFact, _mahConsumedFactName);
_addFact(&_currentFact, _currentFactName); _addFact(&_currentFact, _currentFactName);
_addFact(&_temperatureFact, _temperatureFactName); _addFact(&_temperatureFact, _temperatureFactName);
_addFact(&_cellCountFact, _cellCountFactName); _addFact(&_cellCountFact, _cellCountFactName);
// Start out as not available // Start out as not available
_voltageFact.setRawValue (_voltageUnavailable); _voltageFact.setRawValue (_voltageUnavailable);
...@@ -1483,6 +1483,14 @@ void VehicleBatteryFactGroup::setVehicle(Vehicle* vehicle) ...@@ -1483,6 +1483,14 @@ void VehicleBatteryFactGroup::setVehicle(Vehicle* vehicle)
_vehicle = vehicle; _vehicle = vehicle;
} }
Fact* VehicleBatteryFactGroup::percentRemainingAnnounce(void)
{
if (!_percentRemainingAnnounceFact) {
_percentRemainingAnnounceFact = new SettingsFact(_settingsGroup, _percentRemainingAnnounceFactName, FactMetaData::valueTypeInt32, _percentRemainingAnnounceDefault);
}
return _percentRemainingAnnounceFact;
}
const char* VehicleWindFactGroup::_directionFactName = "direction"; const char* VehicleWindFactGroup::_directionFactName = "direction";
const char* VehicleWindFactGroup::_speedFactName = "speed"; const char* VehicleWindFactGroup::_speedFactName = "speed";
const char* VehicleWindFactGroup::_verticalSpeedFactName = "verticalSpeed"; const char* VehicleWindFactGroup::_verticalSpeedFactName = "verticalSpeed";
......
...@@ -184,7 +184,7 @@ public: ...@@ -184,7 +184,7 @@ public:
Fact* voltage (void) { return &_voltageFact; } Fact* voltage (void) { return &_voltageFact; }
Fact* percentRemaining (void) { return &_percentRemainingFact; } Fact* percentRemaining (void) { return &_percentRemainingFact; }
Fact* percentRemainingAnnounce (void) { return &_percentRemainingAnnounceFact; } Fact* percentRemainingAnnounce (void);
Fact* mahConsumed (void) { return &_mahConsumedFact; } Fact* mahConsumed (void) { return &_mahConsumedFact; }
Fact* current (void) { return &_currentFact; } Fact* current (void) { return &_currentFact; }
Fact* temperature (void) { return &_temperatureFact; } Fact* temperature (void) { return &_temperatureFact; }
...@@ -220,7 +220,9 @@ private: ...@@ -220,7 +220,9 @@ private:
Fact _temperatureFact; Fact _temperatureFact;
Fact _cellCountFact; Fact _cellCountFact;
static SettingsFact _percentRemainingAnnounceFact; /// This fact is global to all Vehicles. We must allocated the first time we need it so we don't
/// run into QSettings application setup ordering issues.
static SettingsFact* _percentRemainingAnnounceFact;
}; };
class Vehicle : public FactGroup class Vehicle : public FactGroup
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment