Skip to contentSkip to conversation

perf session: Destructors should accept NULL

tip:perf/core tip-bot for Arnaldo Carvalho de Melo 1 participant 1 message Jun 26, 2016 perf events

lore
Share & tools
lore
#0 lore raw
Commit-ID:  e1446551e60a7773c3acf3c55bb9449d70127882
Gitweb:     http://git.kernel.org/tip/e1446551e60a7773c3acf3c55bb9449d70127882
Author:     Arnaldo Carvalho de Melo <[email protected]>
AuthorDate: Wed, 22 Jun 2016 10:02:16 -0300
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Wed, 22 Jun 2016 10:02:16 -0300

perf session: Destructors should accept NULL

And do nothing, just like free(), to avoid having to test it in callers, usually in error paths.

---
 tools/perf/builtin-buildid-cache.c | 3 +--
 tools/perf/builtin-diff.c          | 4 +---
 tools/perf/builtin-kvm.c           | 3 +--
 tools/perf/util/session.c          | 2 ++
 4 files changed, 5 insertions(+), 7 deletions(-)
tools/perf/builtin-buildid-cache.c +1 -2
index d75bded..2cbec65 100644
@@ -419,8 +419,7 @@ int cmd_buildid_cache(int argc, const char **argv,
 		pr_warning("Couldn't add %s\n", kcore_filename);
 
 out:
-	if (session)
-		perf_session__delete(session);
+	perf_session__delete(session);
 
 	return ret;
 }
tools/perf/builtin-diff.c +1 -3
index 8b6735f..eac0b11 100644
@@ -756,9 +756,7 @@ static int __cmd_diff(void)
 
  out_delete:
 	data__for_each_file(i, d) {
-		if (d->session)
-			perf_session__delete(d->session);
-
+		perf_session__delete(d->session);
 		data__free(d);
 	}
 
tools/perf/builtin-kvm.c +1 -2
index ad46e91..8f8f90e 100644
@@ -1426,8 +1426,7 @@ static int kvm_events_live(struct perf_kvm_stat *kvm,
 	err = kvm_events_live_report(kvm);
 
 out:
-	if (kvm->session)
-		perf_session__delete(kvm->session);
+	perf_session__delete(kvm->session);
 	kvm->session = NULL;
 	perf_evlist__delete(kvm->evlist);
 
tools/perf/util/session.c +2 -0
index dfedf09..43be0c5 100644
@@ -178,6 +178,8 @@ static void perf_session__delete_threads(struct perf_session *session)
 
 void perf_session__delete(struct perf_session *session)
 {
+	if (session == NULL)
+		return;
 	auxtrace__free(session);
 	auxtrace_index__free(&session->auxtrace_index);
 	perf_session__destroy_kernel_maps(session);