Author: aschnell Date: Wed Feb 4 14:13:05 2009 New Revision: 55240 URL: http://svn.opensuse.org/viewcvs/yast?rev=55240&view=rev Log: - fixed resource leaks (thanks to Ladislav) Modified: trunk/core/agent-dbus/src/DbusAgent.cc trunk/core/agent-dbus/src/DbusAgent.h Modified: trunk/core/agent-dbus/src/DbusAgent.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/agent-dbus/src/DbusAgent.cc?rev=55240&r1=55239&r2=55240&view=diff ============================================================================== --- trunk/core/agent-dbus/src/DbusAgent.cc (original) +++ trunk/core/agent-dbus/src/DbusAgent.cc Wed Feb 4 14:13:05 2009 @@ -21,6 +21,7 @@ DbusAgent::~DbusAgent() { + disconnect(); } @@ -136,16 +137,23 @@ { const char* param = tmp3->asString()->value_cstr(); if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, ¶m)) + { + dbus_message_unref(message); return YCPError("dbus_message_iter_append_basic() failed"); + } } else if (tmp3->isBoolean()) { bool param = tmp3->asBoolean()->value(); if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_BOOLEAN, ¶m)) + { + dbus_message_unref(message); return YCPError("dbus_message_iter_append_basic() failed"); + } } else { + dbus_message_unref(message); return YCPError("Unsupported type"); } } @@ -204,6 +212,8 @@ void DbusAgent::connect(DBusBusType type) { + disconnect(); + y2milestone("connecting dbus"); connection = dbus_bus_get(type, &error); @@ -218,3 +228,14 @@ y2error("connecting dbus failed"); } } + + +void +DbusAgent::disconnect() +{ + if (connection) + { + dbus_connection_unref(connection); + connection = NULL; + } +} Modified: trunk/core/agent-dbus/src/DbusAgent.h URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/agent-dbus/src/DbusAgent.h?rev=55240&r1=55239&r2=55240&view=diff ============================================================================== --- trunk/core/agent-dbus/src/DbusAgent.h (original) +++ trunk/core/agent-dbus/src/DbusAgent.h Wed Feb 4 14:13:05 2009 @@ -60,6 +60,7 @@ private: void connect(DBusBusType type); + void disconnect(); DBusConnection* connection; DBusError error; -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org