diff --git a/legacy/edbus/src/lib/edbus_service.c b/legacy/edbus/src/lib/edbus_service.c index 472d8f335a..13eaad2024 100644 --- a/legacy/edbus/src/lib/edbus_service.c +++ b/legacy/edbus/src/lib/edbus_service.c @@ -1247,7 +1247,6 @@ edbus_service_signal_emit(const EDBus_Service_Interface *iface, unsigned int sig EINA_SAFETY_ON_FALSE_RETURN_VAL(r, EINA_FALSE); edbus_service_signal_send(iface, sig); - edbus_message_unref(sig); return EINA_TRUE; } @@ -1257,6 +1256,7 @@ edbus_service_signal_send(const EDBus_Service_Interface *iface, EDBus_Message *s EDBUS_SERVICE_INTERFACE_CHECK_RETVAL(iface, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(signal_msg, EINA_FALSE); _edbus_connection_send(iface->obj->conn, signal_msg, NULL, NULL, -1); + edbus_message_unref(sig); return EINA_TRUE; } diff --git a/legacy/edbus/src/lib/edbus_service.h b/legacy/edbus/src/lib/edbus_service.h index c8ff1c3ef3..ee5ead30ef 100644 --- a/legacy/edbus/src/lib/edbus_service.h +++ b/legacy/edbus/src/lib/edbus_service.h @@ -146,6 +146,10 @@ EAPI EDBus_Message *edbus_service_signal_new(const EDBus_Service_Interface *ifac /** * @brief Send a signal message. + * + * On success this will call edbus_message_unref() on the @param signal_msg, + * which is the intended behavior in 99% of the cases. Remember to increment + * the refcount if you want to keep it alive. */ EAPI Eina_Bool edbus_service_signal_send(const EDBus_Service_Interface *iface, EDBus_Message *signal_msg) EINA_ARG_NONNULL(1, 2);