// For each enabled transition in the property automaton, push a
// (application_state, automaton_state) pair to the exploration stack:
for (int i = mcapi::get().get_dynar_length(current_pair->automaton_state->out) - 1; i >= 0; i--) {
- const xbt_automaton_transition* transition_succ =
- xbt_dynar_get_as(current_pair->automaton_state->out, i, xbt_automaton_transition_t);
auto transition_succ_label = mcapi::get().get_automaton_transition_label(current_pair->automaton_state->out, i);
+ auto transition_succ_dst = mcapi::get().get_automaton_transition_dst(current_pair->automaton_state->out, i);
if (evaluate_label(transition_succ_label, *prop_values))
- exploration_stack_.push_back(this->create_pair(current_pair.get(), transition_succ->dst, prop_values));
+ exploration_stack_.push_back(this->create_pair(current_pair.get(), transition_succ_dst, prop_values));
}
}
return transition->label;
}
+xbt_automaton_state_t mc_api::get_automaton_transition_dst(xbt_dynar_t const& dynar, int index) const
+{
+ const xbt_automaton_transition* transition =
+ xbt_dynar_get_as(dynar, index, xbt_automaton_transition_t);
+ return transition->dst;
+}
+
} // namespace mc
} // namespace simgrid
return xbt_automaton_state_compare(s1, s2);
}
xbt_automaton_exp_label_t get_automaton_transition_label(xbt_dynar_t const& dynar, int index) const;
+ xbt_automaton_state_t get_automaton_transition_dst(xbt_dynar_t const& dynar, int index) const;
// DYNAR APIs
inline unsigned long get_dynar_length(const_xbt_dynar_t const& dynar) const {