diff options
author | Vsevolod Buzinov <ext-vsevolod.buzinov@nokia.com> | 2010-05-26 09:57:23 +0300 |
---|---|---|
committer | Vsevolod Buzinov <ext-vsevolod.buzinov@nokia.com> | 2010-05-26 09:57:23 +0300 |
commit | 5e69a0ef55fc3299862aa168ce1b4db3fabb3e83 (patch) | |
tree | 59b9d320d3e2c0e7110af1cca1f3c45c03c3a42d /libresourceqt/src/resource-engine.cpp | |
parent | dc9c29594133291a2944591a359c7adb8f24a85e (diff) |
Fixes leaks in resource engine related to messageMap
Diffstat (limited to 'libresourceqt/src/resource-engine.cpp')
-rw-r--r-- | libresourceqt/src/resource-engine.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/libresourceqt/src/resource-engine.cpp b/libresourceqt/src/resource-engine.cpp index 6489a53..42f1b16 100644 --- a/libresourceqt/src/resource-engine.cpp +++ b/libresourceqt/src/resource-engine.cpp @@ -42,12 +42,23 @@ ResourceEngine::~ResourceEngine() qDebug("ResourceEngine::~ResourceEngine(%d) - unset userdata", identifier); } if (libresourceUsers==0) { +// DBusError dbusError; +// DBusConnection *dbusConnection; qDebug("ResourceEngine::~ResourceEngine(%d) - last libresourceUser!", identifier); ResourceEngine::libresourceConnection = NULL; +// dbus_error_init(&dbusError); +// dbusConnection = dbus_bus_get(DBUS_BUS_SESSION, &dbusError); +// if (dbus_error_is_set(&dbusError)) { +// qDebug("Error getting the session bus: %s", dbusError.message); +// dbus_error_free(&dbusError); +// return; +// } +// dbus_error_free(&dbusError); +// DBUSConnectionEventLoop::removeConnection(dbusConnection); } qDebug("ResourceEngine::~ResourceEngine(%d) is no more!", identifier); } - + bool ResourceEngine::initialize() { qDebug("ResourceEngine(%d)::%s() - **************** locking....", identifier, __FUNCTION__); @@ -166,6 +177,7 @@ void ResourceEngine::receivedGrant(resmsg_notify_t *notifyMessage) identifier, notifyMessage->resrc); emit resourcesGranted(notifyMessage->resrc); } + messageMap.remove(notifyMessage->reqno); } static void handleAdviceMessage(resmsg_t *message, resset_t *libresourceSet, void *) @@ -391,6 +403,9 @@ void ResourceEngine::handleStatusMessage(quint32 requestNo) else if(originalMessageType == RESMSG_RELEASE) { qDebug("ResourceEngine(%d) - Release status", identifier); } + else { + messageMap.remove(requestNo); + } } void ResourceEngine::handleError(quint32 requestNo, qint32 code, const char *message) @@ -398,6 +413,7 @@ void ResourceEngine::handleError(quint32 requestNo, qint32 code, const char *mes resmsg_type_t originalMessageType = messageMap.take(requestNo); qDebug("ResourceEngine(%d) - Error on request %u(0x%02x): %d - %s", identifier, requestNo, originalMessageType, code, message); + messageMap.remove(requestNo); } bool ResourceEngine::isConnectedToManager() |