Skip to contentSkip to conversation

perf tools: Use perf_event_terms__purge() for non-malloced terms

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

lore
Share & tools
lore
#0 lore raw
Commit-ID:  682dc24c2a0f13d5a16ac8f4303671eb8f11519f
Gitweb:     http://git.kernel.org/tip/682dc24c2a0f13d5a16ac8f4303671eb8f11519f
Author:     Arnaldo Carvalho de Melo <[email protected]>
AuthorDate: Fri, 12 Feb 2016 16:48:00 -0300
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Fri, 12 Feb 2016 16:53:22 -0300

perf tools: Use perf_event_terms__purge() for non-malloced terms

In these two cases, a 'perf test' entry and in the PMU code the list_head is on the stack, so we can't use perf_event__free_terms() (soon to be renamed to perf_event_terms__delete()), because it will free the list_head as well.

---
 tools/perf/tests/parse-events.c | 2 +-
 tools/perf/util/pmu.c           | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
tools/perf/tests/parse-events.c +1 -1
index abe8849..6648274 100644
@@ -1666,7 +1666,7 @@ static int test_term(struct terms_test *t)
 	}
 
 	ret = t->check(&terms);
-	parse_events__free_terms(&terms);
+	parse_events_terms__purge(&terms);
 
 	return ret;
 }
tools/perf/util/pmu.c +1 -1
index 41a9c87..cf59fba 100644
@@ -354,7 +354,7 @@ static int pmu_alias_terms(struct perf_pmu_alias *alias,
 	list_for_each_entry(term, &alias->terms, list) {
 		ret = parse_events_term__clone(&cloned, term);
 		if (ret) {
-			parse_events__free_terms(&list);
+			parse_events_terms__purge(&list);
 			return ret;
 		}
 		list_add_tail(&cloned->list, &list);