Merge pull request #8019 from jarvte/fix_crash_in_close_cellularnetwork

Cellular: fixed crash when closing CellularNetwork via CellularDevice.
pull/8229/head
Martin Kojtal 2018-09-24 09:06:34 +02:00 committed by GitHub
commit 2e049ce035
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 6 deletions

View File

@ -29,7 +29,6 @@ namespace mbed {
class AT_CellularBase {
public:
AT_CellularBase(ATHandler &at);
/** Getter for at handler. Common method for all AT-classes.
*
* @return reference to ATHandler

View File

@ -207,9 +207,10 @@ void AT_CellularDevice::close_network()
if (_network) {
_network_ref_count--;
if (_network_ref_count == 0) {
release_at_handler(&_network->get_at_handler());
ATHandler *atHandler = &_network->get_at_handler();
delete _network;
_network = NULL;
release_at_handler(atHandler);
}
}
}
@ -219,9 +220,10 @@ void AT_CellularDevice::close_sms()
if (_sms) {
_sms_ref_count--;
if (_sms_ref_count == 0) {
release_at_handler(&_sms->get_at_handler());
ATHandler *atHandler = &_sms->get_at_handler();
delete _sms;
_sms = NULL;
release_at_handler(atHandler);
}
}
}
@ -231,9 +233,10 @@ void AT_CellularDevice::close_power()
if (_power) {
_power_ref_count--;
if (_power_ref_count == 0) {
release_at_handler(&_power->get_at_handler());
ATHandler *atHandler = &_power->get_at_handler();
delete _power;
_power = NULL;
release_at_handler(atHandler);
}
}
}
@ -243,9 +246,10 @@ void AT_CellularDevice::close_sim()
if (_sim) {
_sim_ref_count--;
if (_sim_ref_count == 0) {
release_at_handler(&_sim->get_at_handler());
ATHandler *atHandler = &_sim->get_at_handler();
delete _sim;
_sim = NULL;
release_at_handler(atHandler);
}
}
}
@ -255,9 +259,10 @@ void AT_CellularDevice::close_information()
if (_information) {
_info_ref_count--;
if (_info_ref_count == 0) {
release_at_handler(&_information->get_at_handler());
ATHandler *atHandler = &_information->get_at_handler();
delete _information;
_information = NULL;
release_at_handler(atHandler);
}
}
}