From: Jonathan Rajotte Date: Tue, 22 Mar 2016 18:12:05 +0000 (-0400) Subject: Refactor: embed mi in "list_output" to remove code duplication X-Git-Tag: v2.9.0-rc1~303 X-Git-Url: https://git.lttng.org/?a=commitdiff_plain;ds=sidebyside;h=8e610b4279bab6b20fd1b92e418f4d28d5c28f5c;p=lttng-tools.git Refactor: embed mi in "list_output" to remove code duplication Reduces the number of possible code paths and ensure a coherent return path. Signed-off-by: Jonathan Rajotte Signed-off-by: Jérémie Galarneau --- diff --git a/src/bin/lttng/commands/snapshot.c b/src/bin/lttng/commands/snapshot.c index 298bc6ef3..e9c60fbbb 100644 --- a/src/bin/lttng/commands/snapshot.c +++ b/src/bin/lttng/commands/snapshot.c @@ -150,65 +150,28 @@ error_create: return NULL; } -static int mi_list_output(void) +static int list_output(void) { - int ret; + int ret, output_seen = 0; struct lttng_snapshot_output *s_iter; struct lttng_snapshot_output_list *list; - assert(writer); - ret = lttng_snapshot_list_output(current_session_name, &list); if (ret < 0) { goto error; } - ret = mi_lttng_snapshot_output_session_name(writer, current_session_name); - if (ret) { - ret = CMD_ERROR; - goto end; - } + MSG("Snapshot output list for session %s", current_session_name); - while ((s_iter = lttng_snapshot_output_list_get_next(list)) != NULL) { - ret = mi_lttng_snapshot_list_output(writer, s_iter); + if (lttng_opt_mi) { + ret = mi_lttng_snapshot_output_session_name(writer, + current_session_name); if (ret) { ret = CMD_ERROR; goto end; } } - - /* Close snapshot snapshots element */ - ret = mi_lttng_writer_close_element(writer); - if (ret) { - ret = CMD_ERROR; - goto end; - } - - /* Close snapshot session element */ - ret = mi_lttng_writer_close_element(writer); - if (ret) { - ret = CMD_ERROR; - } -end: - lttng_snapshot_output_list_destroy(list); -error: - return ret; -} - -static int list_output(void) -{ - int ret, output_seen = 0; - struct lttng_snapshot_output *s_iter; - struct lttng_snapshot_output_list *list; - - ret = lttng_snapshot_list_output(current_session_name, &list); - if (ret < 0) { - goto error; - } - - MSG("Snapshot output list for session %s", current_session_name); - while ((s_iter = lttng_snapshot_output_list_get_next(list)) != NULL) { MSG("%s[%" PRIu32 "] %s: %s (max-size: %" PRId64 ")", indent4, lttng_snapshot_output_get_id(s_iter), @@ -216,8 +179,30 @@ static int list_output(void) lttng_snapshot_output_get_ctrl_url(s_iter), lttng_snapshot_output_get_maxsize(s_iter)); output_seen = 1; + if (lttng_opt_mi) { + ret = mi_lttng_snapshot_list_output(writer, s_iter); + if (ret) { + ret = CMD_ERROR; + goto end; + } + } } + if (lttng_opt_mi) { + /* Close snapshot snapshots element */ + ret = mi_lttng_writer_close_element(writer); + if (ret) { + ret = CMD_ERROR; + goto end; + } + + /* Close snapshot session element */ + ret = mi_lttng_writer_close_element(writer); + if (ret) { + ret = CMD_ERROR; + } + } +end: lttng_snapshot_output_list_destroy(list); if (!output_seen) { @@ -473,11 +458,7 @@ static int cmd_list_output(int argc, const char **argv) { int ret; - if (lttng_opt_mi) { - ret = mi_list_output(); - } else { - ret = list_output(); - } + ret = list_output(); return ret; }