struct metric_expr *expr, *tmp;
list_for_each_entry_safe(expr, tmp, &me->head, nd) {
- free((char *)expr->metric_name);
- free(expr->metric_refs);
- free(expr->metric_events);
+ zfree(&expr->metric_name);
+ zfree(&expr->metric_refs);
+ zfree(&expr->metric_events);
free(expr);
}
if (!m)
return;
- free(m->metric_refs);
+ zfree(&m->metric_refs);
expr__ctx_free(m->pctx);
- free((char *)m->modifier);
+ zfree(&m->modifier);
evlist__delete(m->evlist);
free(m);
}
if (strstr(ev->name, "metric-id=")) {
bool has_slash = false;
- free(ev->name);
+ zfree(&ev->name);
for (cur = strchr(sb.buf, '@') ; cur; cur = strchr(++cur, '@')) {
*cur = '/';
has_slash = true;
alloc_size = sizeof(*new_expr->metric_events);
new_expr->metric_events = calloc(nr + 1, alloc_size);
if (!new_expr->metric_events) {
- free(new_expr->metric_refs);
+ zfree(&new_expr->metric_refs);
free(new_expr);
return -ENOMEM;
}
evsel = old_expr->metric_events[idx];
evsel = evlist__find_evsel(evlist, evsel->core.idx);
if (evsel == NULL) {
- free(new_expr->metric_events);
- free(new_expr->metric_refs);
+ zfree(&new_expr->metric_events);
+ zfree(&new_expr->metric_refs);
free(new_expr);
return -EINVAL;
}