aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2013-12-26 13:54:57 -0500
committerArnaldo Carvalho de Melo <acme@redhat.com>2013-12-26 13:58:52 -0500
commitf5385650c02cd4373c4124c8a8fac3b5f9851e7f (patch)
tree93d2a59ebf378289abf9853ab2da49c70ac80633
parent6dd601354f14b5cd7a0a4103811e52ccec22ac53 (diff)
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>
-rw-r--r--tools/perf/builtin-kvm.c4
-rw-r--r--tools/perf/ui/browsers/scripts.c3
-rw-r--r--tools/perf/util/header.c6
-rw-r--r--tools/perf/util/probe-event.c62
-rw-r--r--tools/perf/util/probe-finder.c12
-rw-r--r--tools/perf/util/scripting-engines/trace-event-perl.c3
-rw-r--r--tools/perf/util/scripting-engines/trace-event-python.c3
7 files changed, 31 insertions, 62 deletions
diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c
index 5a80da6ba413..a6ec1052c291 100644
--- a/tools/perf/builtin-kvm.c
+++ b/tools/perf/builtin-kvm.c
@@ -1158,9 +1158,7 @@ out:
1158 if (kvm->timerfd >= 0) 1158 if (kvm->timerfd >= 0)
1159 close(kvm->timerfd); 1159 close(kvm->timerfd);
1160 1160
1161 if (pollfds) 1161 free(pollfds);
1162 free(pollfds);
1163
1164 return err; 1162 return err;
1165} 1163}
1166 1164
diff --git a/tools/perf/ui/browsers/scripts.c b/tools/perf/ui/browsers/scripts.c
index d63c68ea02a8..402d2bd30b09 100644
--- a/tools/perf/ui/browsers/scripts.c
+++ b/tools/perf/ui/browsers/scripts.c
@@ -173,8 +173,7 @@ int script_browse(const char *script_opt)
173 if (script.b.width > AVERAGE_LINE_LEN) 173 if (script.b.width > AVERAGE_LINE_LEN)
174 script.b.width = AVERAGE_LINE_LEN; 174 script.b.width = AVERAGE_LINE_LEN;
175 175
176 if (line) 176 free(line);
177 free(line);
178 pclose(fp); 177 pclose(fp);
179 178
180 script.nr_lines = nr_entries; 179 script.nr_lines = nr_entries;
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 61c54213704b..10730b0af804 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -1232,10 +1232,8 @@ static void free_event_desc(struct perf_evsel *events)
1232 return; 1232 return;
1233 1233
1234 for (evsel = events; evsel->attr.size; evsel++) { 1234 for (evsel = events; evsel->attr.size; evsel++) {
1235 if (evsel->name) 1235 free(evsel->name);
1236 free(evsel->name); 1236 free(evsel->id);
1237 if (evsel->id)
1238 free(evsel->id);
1239 } 1237 }
1240 1238
1241 free(events); 1239 free(events);
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 72b56aef105e..095a98ec7444 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -401,9 +401,7 @@ static int add_module_to_probe_trace_events(struct probe_trace_event *tevs,
401 } 401 }
402 } 402 }
403 403
404 if (tmp) 404 free(tmp);
405 free(tmp);
406
407 return ret; 405 return ret;
408} 406}
409 407
@@ -1382,8 +1380,7 @@ static char *synthesize_perf_probe_point(struct perf_probe_point *pp)
1382error: 1380error:
1383 pr_debug("Failed to synthesize perf probe point: %s\n", 1381 pr_debug("Failed to synthesize perf probe point: %s\n",
1384 strerror(-ret)); 1382 strerror(-ret));
1385 if (buf) 1383 free(buf);
1386 free(buf);
1387 return NULL; 1384 return NULL;
1388} 1385}
1389 1386
@@ -1584,34 +1581,25 @@ void clear_perf_probe_event(struct perf_probe_event *pev)
1584 struct perf_probe_arg_field *field, *next; 1581 struct perf_probe_arg_field *field, *next;
1585 int i; 1582 int i;
1586 1583
1587 if (pev->event) 1584 free(pev->event);
1588 free(pev->event); 1585 free(pev->group);
1589 if (pev->group) 1586 free(pp->file);
1590 free(pev->group); 1587 free(pp->function);
1591 if (pp->file) 1588 free(pp->lazy_line);
1592 free(pp->file); 1589
1593 if (pp->function)
1594 free(pp->function);
1595 if (pp->lazy_line)
1596 free(pp->lazy_line);
1597 for (i = 0; i < pev->nargs; i++) { 1590 for (i = 0; i < pev->nargs; i++) {
1598 if (pev->args[i].name) 1591 free(pev->args[i].name);
1599 free(pev->args[i].name); 1592 free(pev->args[i].var);
1600 if (pev->args[i].var) 1593 free(pev->args[i].type);
1601 free(pev->args[i].var);
1602 if (pev->args[i].type)
1603 free(pev->args[i].type);
1604 field = pev->args[i].field; 1594 field = pev->args[i].field;
1605 while (field) { 1595 while (field) {
1606 next = field->next; 1596 next = field->next;
1607 if (field->name) 1597 free(field->name);
1608 free(field->name);
1609 free(field); 1598 free(field);
1610 field = next; 1599 field = next;
1611 } 1600 }
1612 } 1601 }
1613 if (pev->args) 1602 free(pev->args);
1614 free(pev->args);
1615 memset(pev, 0, sizeof(*pev)); 1603 memset(pev, 0, sizeof(*pev));
1616} 1604}
1617 1605
@@ -1620,21 +1608,14 @@ static void clear_probe_trace_event(struct probe_trace_event *tev)
1620 struct probe_trace_arg_ref *ref, *next; 1608 struct probe_trace_arg_ref *ref, *next;
1621 int i; 1609 int i;
1622 1610
1623 if (tev->event) 1611 free(tev->event);
1624 free(tev->event); 1612 free(tev->group);
1625 if (tev->group) 1613 free(tev->point.symbol);
1626 free(tev->group); 1614 free(tev->point.module);
1627 if (tev->point.symbol)
1628 free(tev->point.symbol);
1629 if (tev->point.module)
1630 free(tev->point.module);
1631 for (i = 0; i < tev->nargs; i++) { 1615 for (i = 0; i < tev->nargs; i++) {
1632 if (tev->args[i].name) 1616 free(tev->args[i].name);
1633 free(tev->args[i].name); 1617 free(tev->args[i].value);
1634 if (tev->args[i].value) 1618 free(tev->args[i].type);
1635 free(tev->args[i].value);
1636 if (tev->args[i].type)
1637 free(tev->args[i].type);
1638 ref = tev->args[i].ref; 1619 ref = tev->args[i].ref;
1639 while (ref) { 1620 while (ref) {
1640 next = ref->next; 1621 next = ref->next;
@@ -1642,8 +1623,7 @@ static void clear_probe_trace_event(struct probe_trace_event *tev)
1642 ref = next; 1623 ref = next;
1643 } 1624 }
1644 } 1625 }
1645 if (tev->args) 1626 free(tev->args);
1646 free(tev->args);
1647 memset(tev, 0, sizeof(*tev)); 1627 memset(tev, 0, sizeof(*tev));
1648} 1628}
1649 1629
diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
index 7db7e05ccb89..8c087359b7ce 100644
--- a/tools/perf/util/probe-finder.c
+++ b/tools/perf/util/probe-finder.c
@@ -1414,10 +1414,8 @@ int debuginfo__find_available_vars_at(struct debuginfo *dbg,
1414 if (ret < 0) { 1414 if (ret < 0) {
1415 /* Free vlist for error */ 1415 /* Free vlist for error */
1416 while (af.nvls--) { 1416 while (af.nvls--) {
1417 if (af.vls[af.nvls].point.symbol) 1417 free(af.vls[af.nvls].point.symbol);
1418 free(af.vls[af.nvls].point.symbol); 1418 strlist__delete(af.vls[af.nvls].vars);
1419 if (af.vls[af.nvls].vars)
1420 strlist__delete(af.vls[af.nvls].vars);
1421 } 1419 }
1422 free(af.vls); 1420 free(af.vls);
1423 *vls = NULL; 1421 *vls = NULL;
@@ -1524,10 +1522,8 @@ post:
1524 if (fname) { 1522 if (fname) {
1525 ppt->file = strdup(fname); 1523 ppt->file = strdup(fname);
1526 if (ppt->file == NULL) { 1524 if (ppt->file == NULL) {
1527 if (ppt->function) { 1525 free(ppt->function);
1528 free(ppt->function); 1526 ppt->function = NULL;
1529 ppt->function = NULL;
1530 }
1531 ret = -ENOMEM; 1527 ret = -ENOMEM;
1532 goto end; 1528 goto end;
1533 } 1529 }
diff --git a/tools/perf/util/scripting-engines/trace-event-perl.c b/tools/perf/util/scripting-engines/trace-event-perl.c
index 3773c4841cab..e108207c5de0 100644
--- a/tools/perf/util/scripting-engines/trace-event-perl.c
+++ b/tools/perf/util/scripting-engines/trace-event-perl.c
@@ -194,8 +194,7 @@ static void define_event_symbols(struct event_format *event,
194 zero_flag_atom = 0; 194 zero_flag_atom = 0;
195 break; 195 break;
196 case PRINT_FIELD: 196 case PRINT_FIELD:
197 if (cur_field_name) 197 free(cur_field_name);
198 free(cur_field_name);
199 cur_field_name = strdup(args->field.name); 198 cur_field_name = strdup(args->field.name);
200 break; 199 break;
201 case PRINT_FLAGS: 200 case PRINT_FLAGS:
diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c
index b258de6357ac..cd9774df3750 100644
--- a/tools/perf/util/scripting-engines/trace-event-python.c
+++ b/tools/perf/util/scripting-engines/trace-event-python.c
@@ -161,8 +161,7 @@ static void define_event_symbols(struct event_format *event,
161 zero_flag_atom = 0; 161 zero_flag_atom = 0;
162 break; 162 break;
163 case PRINT_FIELD: 163 case PRINT_FIELD:
164 if (cur_field_name) 164 free(cur_field_name);
165 free(cur_field_name);
166 cur_field_name = strdup(args->field.name); 165 cur_field_name = strdup(args->field.name);
167 break; 166 break;
168 case PRINT_FLAGS: 167 case PRINT_FLAGS: