summaryrefslogtreecommitdiff
path: root/libresourceqt/src
diff options
context:
space:
mode:
authorVsevolod Buzinov <ext-vsevolod.buzinov@nokia.com>2010-05-26 09:57:23 +0300
committerVsevolod Buzinov <ext-vsevolod.buzinov@nokia.com>2010-05-26 09:57:23 +0300
commit5e69a0ef55fc3299862aa168ce1b4db3fabb3e83 (patch)
tree59b9d320d3e2c0e7110af1cca1f3c45c03c3a42d /libresourceqt/src
parentdc9c29594133291a2944591a359c7adb8f24a85e (diff)
Fixes leaks in resource engine related to messageMap
Diffstat (limited to 'libresourceqt/src')
-rw-r--r--libresourceqt/src/resource-engine.cpp18
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()