Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
6.8.3
Description
In QScxmlStateMachine->routeEvent this code is used to dispatch events starting with a # to children services :
for (const auto &invokedService : m_invokedServices) { auto service = invokedService.service; if (service == nullptr) continue; if (service->id() == originId) { qCDebug(qscxmlLog) << q << "routing event" << event->name() << "from" << q->name() << "to child" << service->id(); service->postEvent(new QScxmlEvent(*event)); } }
The problem here is that if the service itself has children, then this loop will not consider them.
So it means that only directly invoked scxml machines are considered.
This call would need to be recursing the entire service tree.