Skip to content

Commit 5e7a2df

Browse files
committed
robust remove edge
1 parent 5d5aec5 commit 5e7a2df

File tree

1 file changed

+7
-1
lines changed
  • include/maxplus/base/fsm

1 file changed

+7
-1
lines changed

include/maxplus/base/fsm/fsm.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,13 @@ class FiniteStateMachine : public Abstract::FiniteStateMachine {
458458
return &e;
459459
};
460460

461-
void removeEdge(const Edge<StateLabelType, EdgeLabelType> &e) { this->edges.remove(e); }
461+
void removeEdge(const Edge<StateLabelType, EdgeLabelType> &e) {
462+
auto csrc = dynamic_cast<State<StateLabelType, EdgeLabelType> &>(e.getSource());
463+
// get a non-const version of the state
464+
auto src = this->getStateLabeled(csrc.getLabel());
465+
src.removeOutgoingEdge(e);
466+
this->edges.remove(e);
467+
}
462468

463469
void removeState(const State<StateLabelType, EdgeLabelType> &s) {
464470
// remove related edges

0 commit comments

Comments
 (0)