mirror of https://github.com/ArduPilot/ardupilot
AP_HAL_SITL: introduce get_HAL_mutable() to complement get_HAL()
Returns a mutable reference to the same HAL for certain purposes where the HAL needs to be mutated to avoid UB problems with casting away const and to make the fact that mutation is happening obvious.
This commit is contained in:
parent
8fe95dca81
commit
3c82ac6043
|
@ -33,7 +33,7 @@
|
||||||
|
|
||||||
using namespace HALSITL;
|
using namespace HALSITL;
|
||||||
|
|
||||||
HAL_SITL& hal_sitl = (HAL_SITL&)AP_HAL::get_HAL();
|
HAL_SITL& hal_sitl = (HAL_SITL&)AP_HAL::get_HAL_mutable();
|
||||||
|
|
||||||
static Storage sitlStorage;
|
static Storage sitlStorage;
|
||||||
static SITL_State sitlState;
|
static SITL_State sitlState;
|
||||||
|
@ -299,9 +299,14 @@ void HAL_SITL::actually_reboot()
|
||||||
AP_HAL::panic("PANIC: REBOOT FAILED: %s", strerror(errno));
|
AP_HAL::panic("PANIC: REBOOT FAILED: %s", strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static HAL_SITL hal_sitl_inst;
|
||||||
|
|
||||||
const AP_HAL::HAL& AP_HAL::get_HAL() {
|
const AP_HAL::HAL& AP_HAL::get_HAL() {
|
||||||
static const HAL_SITL hal;
|
return hal_sitl_inst;
|
||||||
return hal;
|
}
|
||||||
|
|
||||||
|
AP_HAL::HAL& AP_HAL::get_HAL_mutable() {
|
||||||
|
return hal_sitl_inst;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // CONFIG_HAL_BOARD == HAL_BOARD_SITL
|
#endif // CONFIG_HAL_BOARD == HAL_BOARD_SITL
|
||||||
|
|
Loading…
Reference in New Issue