From 2064b68718ea5f15de76d661ae1f307d67a0cf26 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Mon, 8 Dec 2014 22:39:07 +0100 Subject: with a few exceptions and some remaining files, never return directly on failure, always goto fail by invoking fail_if MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/mds-registry/mds-registry.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) (limited to 'src/mds-registry/mds-registry.c') diff --git a/src/mds-registry/mds-registry.c b/src/mds-registry/mds-registry.c index 44cbe86..4b49525 100644 --- a/src/mds-registry/mds-registry.c +++ b/src/mds-registry/mds-registry.c @@ -82,6 +82,7 @@ int preinitialise_server(void) */ int initialise_server(void) { + int stage = 0; const char* const message = "Command: intercept\n" "Message ID: 0\n" @@ -103,14 +104,8 @@ int initialise_server(void) that happen between the crash and the recovery. */ - if (full_send(message, strlen(message))) - return 1; - if (hash_table_create_tuned(®_table, 32)) - { - xperror(*argv); - hash_table_destroy(®_table, NULL, NULL); - return 1; - } + fail_if (full_send(message, strlen(message))); stage++; + fail_if (hash_table_create_tuned(®_table, 32)); stage++; reg_table.key_comparator = (compare_func*)string_comparator; reg_table.hasher = (hash_func*)string_hash; fail_if (server_initialised() < 0); @@ -119,7 +114,10 @@ int initialise_server(void) return 0; fail: xperror(*argv); - mds_message_destroy(&received); + if (stage == 1) + hash_table_destroy(®_table, NULL, NULL); + if (stage == 2) + mds_message_destroy(&received); return 1; } @@ -135,13 +133,12 @@ int postinitialise_server(void) if (connected) return 0; - if (reconnect_to_display()) - { - mds_message_destroy(&received); - return 1; - } + fail_if (reconnect_to_display()); connected = 1; return 0; + fail: + mds_message_destroy(&received); + return 1; } -- cgit v1.2.3-70-g09d2