diff --git a/eventrouter/internal/eventrouter_baremetal.c b/eventrouter/internal/eventrouter_baremetal.c index 00eaa81..db64659 100644 --- a/eventrouter/internal/eventrouter_baremetal.c +++ b/eventrouter/internal/eventrouter_baremetal.c @@ -176,8 +176,8 @@ void ErReturnToSender(ErEvent_t *a_event) ErListRemove(&s_context.m_events.m_kept, &a_event->m_next); // All subscribed modules have received the event; return to its sender. - a_event->m_sending_module->m_handler( - a_event, a_event->m_sending_module->m_context); + ErModule_t *sender = a_event->m_sending_module; + sender->m_handler(a_event, sender->m_context); } } diff --git a/eventrouter/internal/eventrouter_os.c b/eventrouter/internal/eventrouter_os.c index 2e4102e..9363dc9 100644 --- a/eventrouter/internal/eventrouter_os.c +++ b/eventrouter/internal/eventrouter_os.c @@ -633,8 +633,8 @@ void ErReturnToSender(ErEvent_t *a_event) // support the optimization mentioned a few lines up. if (atomic_load(&a_event->m_reference_count) == 0) { - a_event->m_sending_module->m_handler( - a_event, a_event->m_sending_module->m_context); + ErModule_t *sender = a_event->m_sending_module; + sender->m_handler(a_event, sender->m_context); } }