From: Simon McVittie Date: Wed, 28 Nov 2012 17:11:38 +0000 (+0000) Subject: transaction_free: factor out X-Git-Tag: dbus-1.7.8~10 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7c540d743db0d7b2f00d35782defcacda8b1479c;p=thirdparty%2Fdbus.git transaction_free: factor out Bug: https://bugs.freedesktop.org/show_bug.cgi?id=60859 Reviewed-by: Chengwei Yang [removed unused variable based on review -smcv] --- diff --git a/bus/connection.c b/bus/connection.c index d69758c97..fddbc78a5 100644 --- a/bus/connection.c +++ b/bus/connection.c @@ -2125,6 +2125,16 @@ bus_transaction_send (BusTransaction *transaction, return TRUE; } +static void +transaction_free (BusTransaction *transaction) +{ + _dbus_assert (transaction->connections == NULL); + + free_cancel_hooks (transaction); + + dbus_free (transaction); +} + static void connection_cancel_transaction (DBusConnection *connection, BusTransaction *transaction) @@ -2163,14 +2173,10 @@ bus_transaction_cancel_and_free (BusTransaction *transaction) while ((connection = _dbus_list_pop_first (&transaction->connections))) connection_cancel_transaction (connection, transaction); - _dbus_assert (transaction->connections == NULL); - _dbus_list_foreach (&transaction->cancel_hooks, cancel_hook_cancel, NULL); - free_cancel_hooks (transaction); - - dbus_free (transaction); + transaction_free (transaction); } static void @@ -2224,11 +2230,7 @@ bus_transaction_execute_and_free (BusTransaction *transaction) while ((connection = _dbus_list_pop_first (&transaction->connections))) connection_execute_transaction (connection, transaction); - _dbus_assert (transaction->connections == NULL); - - free_cancel_hooks (transaction); - - dbus_free (transaction); + transaction_free (transaction); } static void