Skip to content

Commit

Permalink
fix stack overflow
Browse files Browse the repository at this point in the history
  • Loading branch information
samuelsadok committed Sep 28, 2020
1 parent 9e090a0 commit e1c7ddb
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions Firmware/MotorControl/motor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -247,11 +247,11 @@ void Motor::apply_pwm_timings(uint16_t timings[3], bool tentative) {
* motor phases are floating and will not be enabled again until
* arm() is called.
*/
bool Motor::disarm(bool* was_armed) {
bool dummy;
was_armed = was_armed ? was_armed : &dummy;
bool Motor::disarm(bool* p_was_armed) {
bool was_armed;

CRITICAL_SECTION() {
*was_armed = is_armed_;
was_armed = is_armed_;
if (is_armed_) {
gate_driver_.set_enabled(false);
}
Expand All @@ -267,6 +267,10 @@ bool Motor::disarm(bool* was_armed) {
update_brake_current();
}

if (p_was_armed) {
*p_was_armed = was_armed;
}

return true;
}

Expand Down Expand Up @@ -316,7 +320,6 @@ bool Motor::setup() {
void Motor::disarm_with_error(Motor::Error error){
error_ |= error;
disarm();
update_brake_current();
}

bool Motor::do_checks(uint32_t timestamp) {
Expand Down

0 comments on commit e1c7ddb

Please sign in to comment.