diff options
Diffstat (limited to 'tools/lib/perf/evsel.c')
| -rw-r--r-- | tools/lib/perf/evsel.c | 11 | 
1 files changed, 11 insertions, 0 deletions
| diff --git a/tools/lib/perf/evsel.c b/tools/lib/perf/evsel.c index c475319e2e41..13a307fc75ae 100644 --- a/tools/lib/perf/evsel.c +++ b/tools/lib/perf/evsel.c @@ -40,8 +40,19 @@ struct perf_evsel *perf_evsel__new(struct perf_event_attr *attr)  	return evsel;  } +void perf_evsel__exit(struct perf_evsel *evsel) +{ +	assert(evsel->fd == NULL);  /* If not fds were not closed. */ +	assert(evsel->mmap == NULL); /* If not munmap wasn't called. */ +	assert(evsel->sample_id == NULL); /* If not free_id wasn't called. */ +	perf_cpu_map__put(evsel->cpus); +	perf_cpu_map__put(evsel->pmu_cpus); +	perf_thread_map__put(evsel->threads); +} +  void perf_evsel__delete(struct perf_evsel *evsel)  { +	perf_evsel__exit(evsel);  	free(evsel);  } | 
