[PATCH 20/26] perf tools: Introduce perf_hpp_list__for_each_format_safe macro

From: Jiri Olsa
Date: Mon Jan 18 2016 - 04:25:27 EST


Introducing perf_hpp_list__for_each_format_safe macro
to iterate perf_hpp_list object's output entries safely.

Link: http://lkml.kernel.org/n/tip-nj3kp5noe7yt3jodpaha75ed@xxxxxxxxxxxxxx
Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
---
tools/perf/ui/hist.c | 4 ++--
tools/perf/util/hist.h | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/tools/perf/ui/hist.c b/tools/perf/ui/hist.c
index dd0bb4a00d00..4fbb2f43ba3a 100644
--- a/tools/perf/ui/hist.c
+++ b/tools/perf/ui/hist.c
@@ -532,7 +532,7 @@ void perf_hpp__cancel_cumulate(void)
ovh = &perf_hpp__format[PERF_HPP__OVERHEAD];
acc = &perf_hpp__format[PERF_HPP__OVERHEAD_ACC];

- perf_hpp__for_each_format_safe(fmt, tmp) {
+ perf_hpp_list__for_each_format_safe(&perf_hpp_list, fmt, tmp) {
if (acc->equal(acc, fmt)) {
perf_hpp__column_unregister(fmt);
continue;
@@ -597,7 +597,7 @@ void perf_hpp__reset_output_field(void)
struct perf_hpp_fmt *fmt, *tmp;

/* reset output fields */
- perf_hpp__for_each_format_safe(fmt, tmp) {
+ perf_hpp_list__for_each_format_safe(&perf_hpp_list, fmt, tmp) {
list_del_init(&fmt->list);
list_del_init(&fmt->sort_list);
fmt_free(fmt);
diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
index 31add4d1d860..ac0cfb68018c 100644
--- a/tools/perf/util/hist.h
+++ b/tools/perf/util/hist.h
@@ -251,8 +251,8 @@ static inline void perf_hpp__register_sort_field(struct perf_hpp_fmt *format)
#define perf_hpp_list__for_each_format(_list, format) \
list_for_each_entry(format, &(_list)->list, list)

-#define perf_hpp__for_each_format_safe(format, tmp) \
- list_for_each_entry_safe(format, tmp, &perf_hpp_list.list, list)
+#define perf_hpp_list__for_each_format_safe(_list, format, tmp) \
+ list_for_each_entry_safe(format, tmp, &(_list)->list, list)

#define perf_hpp__for_each_sort_list(format) \
list_for_each_entry(format, &perf_hpp_list.sort_list, sort_list)
--
2.4.3