perf tools: No need to test against NULL before calling free()

Its perfectly fine to call free(NULL), so no need to clutter the source
code with all those superfluous testing.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-uux5wpvevlerd42gqer13e7n@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 6dd60135
...@@ -1158,9 +1158,7 @@ static int kvm_events_live_report(struct perf_kvm_stat *kvm) ...@@ -1158,9 +1158,7 @@ static int kvm_events_live_report(struct perf_kvm_stat *kvm)
if (kvm->timerfd >= 0) if (kvm->timerfd >= 0)
close(kvm->timerfd); close(kvm->timerfd);
if (pollfds) free(pollfds);
free(pollfds);
return err; return err;
} }
......
...@@ -173,8 +173,7 @@ int script_browse(const char *script_opt) ...@@ -173,8 +173,7 @@ int script_browse(const char *script_opt)
if (script.b.width > AVERAGE_LINE_LEN) if (script.b.width > AVERAGE_LINE_LEN)
script.b.width = AVERAGE_LINE_LEN; script.b.width = AVERAGE_LINE_LEN;
if (line) free(line);
free(line);
pclose(fp); pclose(fp);
script.nr_lines = nr_entries; script.nr_lines = nr_entries;
......
...@@ -1232,10 +1232,8 @@ static void free_event_desc(struct perf_evsel *events) ...@@ -1232,10 +1232,8 @@ static void free_event_desc(struct perf_evsel *events)
return; return;
for (evsel = events; evsel->attr.size; evsel++) { for (evsel = events; evsel->attr.size; evsel++) {
if (evsel->name) free(evsel->name);
free(evsel->name); free(evsel->id);
if (evsel->id)
free(evsel->id);
} }
free(events); free(events);
......
...@@ -401,9 +401,7 @@ static int add_module_to_probe_trace_events(struct probe_trace_event *tevs, ...@@ -401,9 +401,7 @@ static int add_module_to_probe_trace_events(struct probe_trace_event *tevs,
} }
} }
if (tmp) free(tmp);
free(tmp);
return ret; return ret;
} }
...@@ -1382,8 +1380,7 @@ static char *synthesize_perf_probe_point(struct perf_probe_point *pp) ...@@ -1382,8 +1380,7 @@ static char *synthesize_perf_probe_point(struct perf_probe_point *pp)
error: error:
pr_debug("Failed to synthesize perf probe point: %s\n", pr_debug("Failed to synthesize perf probe point: %s\n",
strerror(-ret)); strerror(-ret));
if (buf) free(buf);
free(buf);
return NULL; return NULL;
} }
...@@ -1584,34 +1581,25 @@ void clear_perf_probe_event(struct perf_probe_event *pev) ...@@ -1584,34 +1581,25 @@ void clear_perf_probe_event(struct perf_probe_event *pev)
struct perf_probe_arg_field *field, *next; struct perf_probe_arg_field *field, *next;
int i; int i;
if (pev->event) free(pev->event);
free(pev->event); free(pev->group);
if (pev->group) free(pp->file);
free(pev->group); free(pp->function);
if (pp->file) free(pp->lazy_line);
free(pp->file);
if (pp->function)
free(pp->function);
if (pp->lazy_line)
free(pp->lazy_line);
for (i = 0; i < pev->nargs; i++) { for (i = 0; i < pev->nargs; i++) {
if (pev->args[i].name) free(pev->args[i].name);
free(pev->args[i].name); free(pev->args[i].var);
if (pev->args[i].var) free(pev->args[i].type);
free(pev->args[i].var);
if (pev->args[i].type)
free(pev->args[i].type);
field = pev->args[i].field; field = pev->args[i].field;
while (field) { while (field) {
next = field->next; next = field->next;
if (field->name) free(field->name);
free(field->name);
free(field); free(field);
field = next; field = next;
} }
} }
if (pev->args) free(pev->args);
free(pev->args);
memset(pev, 0, sizeof(*pev)); memset(pev, 0, sizeof(*pev));
} }
...@@ -1620,21 +1608,14 @@ static void clear_probe_trace_event(struct probe_trace_event *tev) ...@@ -1620,21 +1608,14 @@ static void clear_probe_trace_event(struct probe_trace_event *tev)
struct probe_trace_arg_ref *ref, *next; struct probe_trace_arg_ref *ref, *next;
int i; int i;
if (tev->event) free(tev->event);
free(tev->event); free(tev->group);
if (tev->group) free(tev->point.symbol);
free(tev->group); free(tev->point.module);
if (tev->point.symbol)
free(tev->point.symbol);
if (tev->point.module)
free(tev->point.module);
for (i = 0; i < tev->nargs; i++) { for (i = 0; i < tev->nargs; i++) {
if (tev->args[i].name) free(tev->args[i].name);
free(tev->args[i].name); free(tev->args[i].value);
if (tev->args[i].value) free(tev->args[i].type);
free(tev->args[i].value);
if (tev->args[i].type)
free(tev->args[i].type);
ref = tev->args[i].ref; ref = tev->args[i].ref;
while (ref) { while (ref) {
next = ref->next; next = ref->next;
...@@ -1642,8 +1623,7 @@ static void clear_probe_trace_event(struct probe_trace_event *tev) ...@@ -1642,8 +1623,7 @@ static void clear_probe_trace_event(struct probe_trace_event *tev)
ref = next; ref = next;
} }
} }
if (tev->args) free(tev->args);
free(tev->args);
memset(tev, 0, sizeof(*tev)); memset(tev, 0, sizeof(*tev));
} }
......
...@@ -1414,10 +1414,8 @@ int debuginfo__find_available_vars_at(struct debuginfo *dbg, ...@@ -1414,10 +1414,8 @@ int debuginfo__find_available_vars_at(struct debuginfo *dbg,
if (ret < 0) { if (ret < 0) {
/* Free vlist for error */ /* Free vlist for error */
while (af.nvls--) { while (af.nvls--) {
if (af.vls[af.nvls].point.symbol) free(af.vls[af.nvls].point.symbol);
free(af.vls[af.nvls].point.symbol); strlist__delete(af.vls[af.nvls].vars);
if (af.vls[af.nvls].vars)
strlist__delete(af.vls[af.nvls].vars);
} }
free(af.vls); free(af.vls);
*vls = NULL; *vls = NULL;
...@@ -1524,10 +1522,8 @@ int debuginfo__find_probe_point(struct debuginfo *dbg, unsigned long addr, ...@@ -1524,10 +1522,8 @@ int debuginfo__find_probe_point(struct debuginfo *dbg, unsigned long addr,
if (fname) { if (fname) {
ppt->file = strdup(fname); ppt->file = strdup(fname);
if (ppt->file == NULL) { if (ppt->file == NULL) {
if (ppt->function) { free(ppt->function);
free(ppt->function); ppt->function = NULL;
ppt->function = NULL;
}
ret = -ENOMEM; ret = -ENOMEM;
goto end; goto end;
} }
......
...@@ -194,8 +194,7 @@ static void define_event_symbols(struct event_format *event, ...@@ -194,8 +194,7 @@ static void define_event_symbols(struct event_format *event,
zero_flag_atom = 0; zero_flag_atom = 0;
break; break;
case PRINT_FIELD: case PRINT_FIELD:
if (cur_field_name) free(cur_field_name);
free(cur_field_name);
cur_field_name = strdup(args->field.name); cur_field_name = strdup(args->field.name);
break; break;
case PRINT_FLAGS: case PRINT_FLAGS:
......
...@@ -161,8 +161,7 @@ static void define_event_symbols(struct event_format *event, ...@@ -161,8 +161,7 @@ static void define_event_symbols(struct event_format *event,
zero_flag_atom = 0; zero_flag_atom = 0;
break; break;
case PRINT_FIELD: case PRINT_FIELD:
if (cur_field_name) free(cur_field_name);
free(cur_field_name);
cur_field_name = strdup(args->field.name); cur_field_name = strdup(args->field.name);
break; break;
case PRINT_FLAGS: case PRINT_FLAGS:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment