perf hists: Introduce perf_hpp_list__for_each_format_safe macro
authorJiri Olsa <jolsa@kernel.org>
Mon, 18 Jan 2016 09:24:18 +0000 (10:24 +0100)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 3 Feb 2016 15:24:14 +0000 (12:24 -0300)
Introducing perf_hpp_list__for_each_format_safe macro to iterate
perf_hpp_list object's output entries safely.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1453109064-1026-21-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/ui/hist.c
tools/perf/util/hist.h

index 7b5e8ce..348706a 100644 (file)
@@ -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);
index eadffca..f5b2309 100644 (file)
@@ -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)->fields, list)
 
-#define perf_hpp__for_each_format_safe(format, tmp)    \
-       list_for_each_entry_safe(format, tmp, &perf_hpp_list.fields, list)
+#define perf_hpp_list__for_each_format_safe(_list, format, tmp)        \
+       list_for_each_entry_safe(format, tmp, &(_list)->fields, list)
 
 #define perf_hpp__for_each_sort_list(format) \
        list_for_each_entry(format, &perf_hpp_list.sorts, sort_list)