From 443327c6b9805d28eb74d75da463cca86b4c11b5 Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Thu, 30 Apr 2020 12:20:48 +0100 Subject: [PATCH] Small internal updates to state_chart --- include/etl/state_chart.h | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/include/etl/state_chart.h b/include/etl/state_chart.h index b26cf186..edb24ca5 100644 --- a/include/etl/state_chart.h +++ b/include/etl/state_chart.h @@ -72,7 +72,6 @@ namespace etl } state_id_t current_state_id; ///< The current state id. - state_id_t next_state_id; ///< The next state id. }; //*************************************************************************** @@ -236,8 +235,8 @@ namespace etl else { return etl::find_if(state_table.begin(), - state_table.end(), - is_state(state_id)); + state_table.end(), + is_state(state_id)); } } @@ -281,8 +280,8 @@ namespace etl { // Scan the transition table from the latest position. t = etl::find_if(t, - transition_table.end(), - is_transition(event_id, current_state_id)); + transition_table.end(), + is_transition(event_id, current_state_id)); // Found an entry? if (t != transition_table.end()) @@ -290,9 +289,6 @@ namespace etl // Shall we execute the transition? if ((t->guard == ETL_NULLPTR) || ((object.*t->guard)())) { - // Remember the next state. - next_state_id = t->next_state_id; - // Shall we execute the action? if (t->action != ETL_NULLPTR) { @@ -300,7 +296,7 @@ namespace etl } // Changing state? - if (current_state_id != next_state_id) + if (current_state_id != t->next_state_id) { const state* s; @@ -313,10 +309,10 @@ namespace etl (object.*(s->on_exit))(); } - current_state_id = next_state_id; + current_state_id = t->next_state_id; - // See if we have a state item for the next state. - s = find_state(next_state_id); + // See if we have a state item for the new state. + s = find_state(current_state_id); // If the new state has an 'on_entry' then call it. if ((s != state_table.end()) && (s->on_entry != ETL_NULLPTR))