Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

+31 -62
+1 -3
tools/perf/builtin-kvm.c
··· 1158 1158 if (kvm->timerfd >= 0) 1159 1159 close(kvm->timerfd); 1160 1160 1161 - if (pollfds) 1162 - free(pollfds); 1163 - 1161 + free(pollfds); 1164 1162 return err; 1165 1163 } 1166 1164
+1 -2
tools/perf/ui/browsers/scripts.c
··· 173 173 if (script.b.width > AVERAGE_LINE_LEN) 174 174 script.b.width = AVERAGE_LINE_LEN; 175 175 176 - if (line) 177 - free(line); 176 + free(line); 178 177 pclose(fp); 179 178 180 179 script.nr_lines = nr_entries;
+2 -4
tools/perf/util/header.c
··· 1232 1232 return; 1233 1233 1234 1234 for (evsel = events; evsel->attr.size; evsel++) { 1235 - if (evsel->name) 1236 - free(evsel->name); 1237 - if (evsel->id) 1238 - free(evsel->id); 1235 + free(evsel->name); 1236 + free(evsel->id); 1239 1237 } 1240 1238 1241 1239 free(events);
+21 -41
tools/perf/util/probe-event.c
··· 401 401 } 402 402 } 403 403 404 - if (tmp) 405 - free(tmp); 406 - 404 + free(tmp); 407 405 return ret; 408 406 } 409 407 ··· 1380 1382 error: 1381 1383 pr_debug("Failed to synthesize perf probe point: %s\n", 1382 1384 strerror(-ret)); 1383 - if (buf) 1384 - free(buf); 1385 + free(buf); 1385 1386 return NULL; 1386 1387 } 1387 1388 ··· 1581 1584 struct perf_probe_arg_field *field, *next; 1582 1585 int i; 1583 1586 1584 - if (pev->event) 1585 - free(pev->event); 1586 - if (pev->group) 1587 - free(pev->group); 1588 - if (pp->file) 1589 - free(pp->file); 1590 - if (pp->function) 1591 - free(pp->function); 1592 - if (pp->lazy_line) 1593 - free(pp->lazy_line); 1587 + free(pev->event); 1588 + free(pev->group); 1589 + free(pp->file); 1590 + free(pp->function); 1591 + free(pp->lazy_line); 1592 + 1594 1593 for (i = 0; i < pev->nargs; i++) { 1595 - if (pev->args[i].name) 1596 - free(pev->args[i].name); 1597 - if (pev->args[i].var) 1598 - free(pev->args[i].var); 1599 - if (pev->args[i].type) 1600 - free(pev->args[i].type); 1594 + free(pev->args[i].name); 1595 + free(pev->args[i].var); 1596 + free(pev->args[i].type); 1601 1597 field = pev->args[i].field; 1602 1598 while (field) { 1603 1599 next = field->next; 1604 - if (field->name) 1605 - free(field->name); 1600 + free(field->name); 1606 1601 free(field); 1607 1602 field = next; 1608 1603 } 1609 1604 } 1610 - if (pev->args) 1611 - free(pev->args); 1605 + free(pev->args); 1612 1606 memset(pev, 0, sizeof(*pev)); 1613 1607 } 1614 1608 ··· 1608 1620 struct probe_trace_arg_ref *ref, *next; 1609 1621 int i; 1610 1622 1611 - if (tev->event) 1612 - free(tev->event); 1613 - if (tev->group) 1614 - free(tev->group); 1615 - if (tev->point.symbol) 1616 - free(tev->point.symbol); 1617 - if (tev->point.module) 1618 - free(tev->point.module); 1623 + free(tev->event); 1624 + free(tev->group); 1625 + free(tev->point.symbol); 1626 + free(tev->point.module); 1619 1627 for (i = 0; i < tev->nargs; i++) { 1620 - if (tev->args[i].name) 1621 - free(tev->args[i].name); 1622 - if (tev->args[i].value) 1623 - free(tev->args[i].value); 1624 - if (tev->args[i].type) 1625 - free(tev->args[i].type); 1628 + free(tev->args[i].name); 1629 + free(tev->args[i].value); 1630 + free(tev->args[i].type); 1626 1631 ref = tev->args[i].ref; 1627 1632 while (ref) { 1628 1633 next = ref->next; ··· 1623 1642 ref = next; 1624 1643 } 1625 1644 } 1626 - if (tev->args) 1627 - free(tev->args); 1645 + free(tev->args); 1628 1646 memset(tev, 0, sizeof(*tev)); 1629 1647 } 1630 1648
+4 -8
tools/perf/util/probe-finder.c
··· 1414 1414 if (ret < 0) { 1415 1415 /* Free vlist for error */ 1416 1416 while (af.nvls--) { 1417 - if (af.vls[af.nvls].point.symbol) 1418 - free(af.vls[af.nvls].point.symbol); 1419 - if (af.vls[af.nvls].vars) 1420 - strlist__delete(af.vls[af.nvls].vars); 1417 + free(af.vls[af.nvls].point.symbol); 1418 + strlist__delete(af.vls[af.nvls].vars); 1421 1419 } 1422 1420 free(af.vls); 1423 1421 *vls = NULL; ··· 1522 1524 if (fname) { 1523 1525 ppt->file = strdup(fname); 1524 1526 if (ppt->file == NULL) { 1525 - if (ppt->function) { 1526 - free(ppt->function); 1527 - ppt->function = NULL; 1528 - } 1527 + free(ppt->function); 1528 + ppt->function = NULL; 1529 1529 ret = -ENOMEM; 1530 1530 goto end; 1531 1531 }
+1 -2
tools/perf/util/scripting-engines/trace-event-perl.c
··· 194 194 zero_flag_atom = 0; 195 195 break; 196 196 case PRINT_FIELD: 197 - if (cur_field_name) 198 - free(cur_field_name); 197 + free(cur_field_name); 199 198 cur_field_name = strdup(args->field.name); 200 199 break; 201 200 case PRINT_FLAGS:
+1 -2
tools/perf/util/scripting-engines/trace-event-python.c
··· 161 161 zero_flag_atom = 0; 162 162 break; 163 163 case PRINT_FIELD: 164 - if (cur_field_name) 165 - free(cur_field_name); 164 + free(cur_field_name); 166 165 cur_field_name = strdup(args->field.name); 167 166 break; 168 167 case PRINT_FLAGS: