mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-31 21:15:33 +08:00
Unregister DBusObject callback when the object is destroyed
Without that cleanup, DBusConnection might try to call a dangling std::function in case the DBusObject was removed before. That is for example happening during shutdown.
This commit is contained in:
committed by
Klaus Basan
parent
dfd33e40c1
commit
f8cc92341a
@@ -15,14 +15,17 @@ namespace XSwiftBus
|
||||
CDBusObject::CDBusObject()
|
||||
{ }
|
||||
|
||||
CDBusObject::~CDBusObject() = default;
|
||||
CDBusObject::~CDBusObject()
|
||||
{
|
||||
m_dbusConnection->unregisterDisconnectedCallback(this);
|
||||
};
|
||||
|
||||
void CDBusObject::setDBusConnection(const std::shared_ptr<CDBusConnection> &dbusConnection)
|
||||
{
|
||||
m_dbusConnection = dbusConnection;
|
||||
dbusConnectedHandler();
|
||||
CDBusConnection::DisconnectedCallback disconnectedHandler = std::bind(&CDBusObject::dbusDisconnectedHandler, this);
|
||||
m_dbusConnection->registerDisconnectedCallback(disconnectedHandler);
|
||||
m_dbusConnection->registerDisconnectedCallback(this, disconnectedHandler);
|
||||
}
|
||||
|
||||
void CDBusObject::registerDBusObjectPath(const std::string &interfaceName, const std::string &objectPath)
|
||||
|
||||
Reference in New Issue
Block a user