summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2021-03-28 09:08:27 +0200
committerThomas Haller <thaller@redhat.com>2021-03-31 20:56:45 +0200
commit090eeabe9c410a0366fa72733e8550fe5c732b66 (patch)
tree567c9878e36a55ef880353e85ec82ece6798b61e
parent60d4092a2cf6bb9711a5308611a3021d816e79ca (diff)
downloadglib-th/gdbus-cleanup.tar.gz
gdbus: simplify error handling in g_dbus_connection_send_message_unlocked()th/gdbus-cleanup
"goto out" is a fine pattern, especially when we are not using cleanup attribute macros. But in this case it was unnecessary.
-rw-r--r--gio/gdbusconnection.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/gio/gdbusconnection.c b/gio/gdbusconnection.c
index bb1c735b9..28c6795bc 100644
--- a/gio/gdbusconnection.c
+++ b/gio/gdbusconnection.c
@@ -1610,7 +1610,6 @@ g_dbus_connection_send_message_unlocked (GDBusConnection *connection,
guchar *blob;
gsize blob_size;
guint32 serial_to_use;
- gboolean ret;
CONNECTION_ENSURE_LOCK (connection);
@@ -1619,9 +1618,6 @@ g_dbus_connection_send_message_unlocked (GDBusConnection *connection,
/* TODO: check all necessary headers are present */
- ret = FALSE;
- blob = NULL;
-
if (out_serial != NULL)
*out_serial = 0;
@@ -1633,14 +1629,14 @@ g_dbus_connection_send_message_unlocked (GDBusConnection *connection,
if (!check_unclosed (connection,
(flags & SEND_MESSAGE_FLAGS_INITIALIZING) ? MAY_BE_UNINITIALIZED : 0,
error))
- goto out;
+ return FALSE;
blob = g_dbus_message_to_blob (message,
&blob_size,
connection->capabilities,
error);
if (blob == NULL)
- goto out;
+ return FALSE;
if (flags & G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL)
serial_to_use = g_dbus_message_get_serial (message);
@@ -1686,18 +1682,13 @@ g_dbus_connection_send_message_unlocked (GDBusConnection *connection,
g_dbus_message_set_serial (message, serial_to_use);
g_dbus_message_lock (message);
+
_g_dbus_worker_send_message (connection->worker,
message,
- (gchar*) blob,
+ (gchar*) blob, /* transfer ownership */
blob_size);
- blob = NULL; /* since _g_dbus_worker_send_message() steals the blob */
-
- ret = TRUE;
- out:
- g_free (blob);
-
- return ret;
+ return TRUE;
}
/**