[lttng-dev] [PATCH lttng-tools v2 2/5] Refactor: embed mi in "list_output" to remove code duplication
Jérémie Galarneau
jeremie.galarneau at efficios.com
Mon Apr 4 16:49:33 UTC 2016
Merged, thanks!
Jérémie
On Tue, Mar 22, 2016 at 2:12 PM, Jonathan Rajotte
<jonathan.rajotte-julien at efficios.com> wrote:
> Reduces the number of possible code paths and ensure a coherent return
> path.
>
> Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien at efficios.com>
> ---
> src/bin/lttng/commands/snapshot.c | 83 +++++++++++++++------------------------
> 1 file changed, 32 insertions(+), 51 deletions(-)
>
> diff --git a/src/bin/lttng/commands/snapshot.c b/src/bin/lttng/commands/snapshot.c
> index 298bc6e..e9c60fb 100644
> --- a/src/bin/lttng/commands/snapshot.c
> +++ b/src/bin/lttng/commands/snapshot.c
> @@ -150,52 +150,6 @@ error_create:
> return NULL;
> }
>
> -static int mi_list_output(void)
> -{
> - int ret;
> - 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;
> - }
> -
> - while ((s_iter = lttng_snapshot_output_list_get_next(list)) != NULL) {
> - ret = mi_lttng_snapshot_list_output(writer, s_iter);
> - 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;
> @@ -209,6 +163,15 @@ static int list_output(void)
>
> MSG("Snapshot output list for session %s", current_session_name);
>
> + if (lttng_opt_mi) {
> + ret = mi_lttng_snapshot_output_session_name(writer,
> + current_session_name);
> + if (ret) {
> + ret = CMD_ERROR;
> + goto end;
> + }
> + }
> +
> 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;
> }
> --
> 2.7.0
>
--
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list