From 7883563478cefd0eb7a4f4466904dcec46db6d8d Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Mon, 20 Jun 2005 19:54:22 +0000 Subject: 2005-06-20 Colin Walters Patch suggested by Ross Burton * glib/dbus-gobject.c (export_signals): Free signal name. (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug memory leak. Add a bit of documentation. (dbus_g_method_return_error): Free context, and note we do so. --- ChangeLog | 10 ++++++++++ glib/dbus-gobject.c | 6 +++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index fbd197a8..1e524652 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2005-06-20 Colin Walters + + Patch suggested by Ross Burton + + * glib/dbus-gobject.c (export_signals): Free signal name. + (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug + memory leak. Add a bit of documentation. + (dbus_g_method_return_error): Free context, and note we do + so. + 2005-06-18 Murray Cumming * dbus/dbus-glib.h: diff --git a/glib/dbus-gobject.c b/glib/dbus-gobject.c index 370862f3..80766ad0 100644 --- a/glib/dbus-gobject.c +++ b/glib/dbus-gobject.c @@ -1245,6 +1245,7 @@ export_signals (DBusGConnection *connection, const DBusGObjectInfo *info, GObjec g_closure_add_finalize_notifier (closure, NULL, dbus_g_signal_closure_finalize); + g_free (s); } } @@ -1549,6 +1550,7 @@ dbus_g_object_register_marshaller_array (GClosureMarshal marshaller, /** * Send a return message for a given method invocation, with arguments. + * This function also frees the sending context. * * @param context the method context */ @@ -1575,7 +1577,7 @@ dbus_g_method_return (DBusGMethodInvocation *context, ...) char *error; g_value_init (&value, g_array_index (argsig, GType, i)); error = NULL; - G_VALUE_COLLECT (&value, args, 0, &error); + G_VALUE_COLLECT (&value, args, G_VALUE_NOCOPY_CONTENTS, &error); if (error) { g_warning(error); @@ -1595,6 +1597,7 @@ dbus_g_method_return (DBusGMethodInvocation *context, ...) /** * Send a error message for a given method invocation. + * This function also frees the sending context. * * @param context the method context * @param error the error to send. @@ -1606,6 +1609,7 @@ dbus_g_method_return_error (DBusGMethodInvocation *context, GError *error) reply = gerror_to_dbus_error_message (context->object, dbus_g_message_get_message (context->message), error); dbus_connection_send (dbus_g_connection_get_connection (context->connection), reply, NULL); dbus_message_unref (reply); + g_free (context); } /** @} */ /* end of public API */ -- cgit