From aa1f5c473ff873efaf0b256415711e4da7517924 Mon Sep 17 00:00:00 2001
From: Tim Wickberg <tim@schedmd.com>
Date: Mon, 12 Dec 2016 00:20:49 -0500
Subject: [PATCH] Convert print_steps_array() to use list_for_each.

Move two functions to static within print.c and slightly
alter types to avoid casts with list_for_each calls.

Also fixes leak of a ListIterator in print_steps_array().
---
 src/squeue/print.c | 27 ++++++++++++++-------------
 src/squeue/print.h |  3 ---
 2 files changed, 14 insertions(+), 16 deletions(-)

diff --git a/src/squeue/print.c b/src/squeue/print.c
index 5aaa9b12a05..bd13fd51c11 100644
--- a/src/squeue/print.c
+++ b/src/squeue/print.c
@@ -69,6 +69,9 @@ static void	_part_state_free(void);
 static void	_part_state_load(void);
 static int	_print_str(char *str, int width, bool right, bool cut_output);
 
+static int _print_job_from_format(void *x, void *arg);
+static int _print_step_from_format(void *x, void *arg);
+
 static partition_info_msg_t *part_info_msg = NULL;
 
 /*****************************************************************************
@@ -84,7 +87,7 @@ int print_jobs_array(job_info_t * jobs, int size, List format)
 
 	l = list_create(_job_list_del);
 	if (!params.no_header)
-		print_job_from_format(NULL, format);
+		_print_job_from_format(NULL, format);
 	_part_state_load();
 
 	/* Filter out the jobs of interest */
@@ -122,8 +125,8 @@ int print_jobs_array(job_info_t * jobs, int size, List format)
 	sort_job_list (l);
 
 	/* Print the jobs of interest */
-	list_for_each (l, (ListForF) print_job_from_format, (void *) format);
-	FREE_NULL_LIST (l);
+	list_for_each(l, _print_job_from_format, format);
+	FREE_NULL_LIST(l);
 
 	return SLURM_SUCCESS;
 }
@@ -131,13 +134,11 @@ int print_jobs_array(job_info_t * jobs, int size, List format)
 int print_steps_array(job_step_info_t * steps, int size, List format)
 {
 	if (!params.no_header)
-		print_step_from_format(NULL, format);
+		_print_step_from_format(NULL, format);
 
 	if (size > 0) {
 		int i;
 		List step_list;
-		ListIterator step_iterator;
-		job_step_info_t *step_ptr;
 
 		step_list = list_create(NULL);
 
@@ -151,11 +152,7 @@ int print_steps_array(job_step_info_t * steps, int size, List format)
 		sort_step_list(step_list);
 
 		/* Print the steps of interest */
-		step_iterator = list_iterator_create(step_list);
-		while ((step_ptr = list_next(step_iterator))) {
-			print_step_from_format(step_ptr, format);
-		}
-		list_iterator_destroy(step_iterator);
+		list_for_each(step_list, _print_step_from_format, format);
 		FREE_NULL_LIST(step_list);
 	}
 
@@ -405,11 +402,13 @@ static int _print_one_job_from_format(job_info_t * job, List list)
 	return SLURM_SUCCESS;
 }
 
-int print_job_from_format(squeue_job_rec_t *job_rec_ptr, List list)
+static int _print_job_from_format(void *x, void *arg)
 {
 	static int32_t max_array_size = -1;
 	int i, i_first, i_last;
 	bitstr_t *bitmap;
+	squeue_job_rec_t *job_rec_ptr = (squeue_job_rec_t *) x;
+	List list = (List) arg;
 
 	if (!job_rec_ptr) {
 		_print_one_job_from_format(NULL, list);
@@ -2063,8 +2062,10 @@ int _print_job_mcs_label(job_info_t * job, int width,
 /*****************************************************************************
  * Job Step Print Functions
  *****************************************************************************/
-int print_step_from_format(job_step_info_t * job_step, List list)
+static int _print_step_from_format(void *x, void *arg)
 {
+	job_step_info_t *job_step = (job_step_info_t *) x;
+	List list = (List) arg;
 	ListIterator i = list_iterator_create(list);
 	step_format_t *current;
 	int total_width = 0;
diff --git a/src/squeue/print.h b/src/squeue/print.h
index 4df2e0a35c7..c29df3ffa34 100644
--- a/src/squeue/print.h
+++ b/src/squeue/print.h
@@ -77,9 +77,6 @@ int print_steps_list(List steps, List format);
 int print_jobs_array(job_info_t * jobs, int size, List format);
 int print_steps_array(job_step_info_t * steps, int size, List format);
 
-int print_job_from_format(squeue_job_rec_t * job_rec_ptr, List list);
-int print_step_from_format(job_step_info_t * job_step, List list);
-
 /*****************************************************************************
  * Job Line Format Options
  *****************************************************************************/
-- 
GitLab