diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-06-22 09:02:16 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-06-22 09:02:16 -0400 |
commit | e1446551e60a7773c3acf3c55bb9449d70127882 (patch) | |
tree | 0d22b5b05ff2cd7b1ee01787a5f1474ccf057918 /tools | |
parent | 0b04b3dcdfb9aeb0e83c8ca322bf0830ee51ce38 (diff) |
perf session: Destructors should accept NULL
And do nothing, just like free(), to avoid having to test it in callers,
usually in error paths.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-dyuupcj0hnoyt96vma8b3anv@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/builtin-buildid-cache.c | 3 | ||||
-rw-r--r-- | tools/perf/builtin-diff.c | 4 | ||||
-rw-r--r-- | tools/perf/builtin-kvm.c | 3 | ||||
-rw-r--r-- | tools/perf/util/session.c | 2 |
4 files changed, 5 insertions, 7 deletions
diff --git a/tools/perf/builtin-buildid-cache.c b/tools/perf/builtin-buildid-cache.c index d75bded21fe0..2cbec658be90 100644 --- a/tools/perf/builtin-buildid-cache.c +++ b/tools/perf/builtin-buildid-cache.c | |||
@@ -419,8 +419,7 @@ int cmd_buildid_cache(int argc, const char **argv, | |||
419 | pr_warning("Couldn't add %s\n", kcore_filename); | 419 | pr_warning("Couldn't add %s\n", kcore_filename); |
420 | 420 | ||
421 | out: | 421 | out: |
422 | if (session) | 422 | perf_session__delete(session); |
423 | perf_session__delete(session); | ||
424 | 423 | ||
425 | return ret; | 424 | return ret; |
426 | } | 425 | } |
diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c index 8b6735f35179..eac0b1100b8f 100644 --- a/tools/perf/builtin-diff.c +++ b/tools/perf/builtin-diff.c | |||
@@ -756,9 +756,7 @@ static int __cmd_diff(void) | |||
756 | 756 | ||
757 | out_delete: | 757 | out_delete: |
758 | data__for_each_file(i, d) { | 758 | data__for_each_file(i, d) { |
759 | if (d->session) | 759 | perf_session__delete(d->session); |
760 | perf_session__delete(d->session); | ||
761 | |||
762 | data__free(d); | 760 | data__free(d); |
763 | } | 761 | } |
764 | 762 | ||
diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c index ad46e91abec5..8f8f90e2b993 100644 --- a/tools/perf/builtin-kvm.c +++ b/tools/perf/builtin-kvm.c | |||
@@ -1426,8 +1426,7 @@ static int kvm_events_live(struct perf_kvm_stat *kvm, | |||
1426 | err = kvm_events_live_report(kvm); | 1426 | err = kvm_events_live_report(kvm); |
1427 | 1427 | ||
1428 | out: | 1428 | out: |
1429 | if (kvm->session) | 1429 | perf_session__delete(kvm->session); |
1430 | perf_session__delete(kvm->session); | ||
1431 | kvm->session = NULL; | 1430 | kvm->session = NULL; |
1432 | perf_evlist__delete(kvm->evlist); | 1431 | perf_evlist__delete(kvm->evlist); |
1433 | 1432 | ||
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index dfedf097b9b1..43be0c5a6a26 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c | |||
@@ -178,6 +178,8 @@ static void perf_session__delete_threads(struct perf_session *session) | |||
178 | 178 | ||
179 | void perf_session__delete(struct perf_session *session) | 179 | void perf_session__delete(struct perf_session *session) |
180 | { | 180 | { |
181 | if (session == NULL) | ||
182 | return; | ||
181 | auxtrace__free(session); | 183 | auxtrace__free(session); |
182 | auxtrace_index__free(&session->auxtrace_index); | 184 | auxtrace_index__free(&session->auxtrace_index); |
183 | perf_session__destroy_kernel_maps(session); | 185 | perf_session__destroy_kernel_maps(session); |