mirror of https://gitee.com/openkylin/linux.git
perf session: Remove one more exit() call from library code
Return NULL instead and make the caller propagate the error. LKML-Reference: <new-submission> Cc: Frédéric Weisbecker <fweisbec@gmail.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
b9fb930477
commit
ad5b217b15
|
@ -89,9 +89,12 @@ static int perf_session__add_hist_entry(struct perf_session *self,
|
||||||
struct event_stat_id *stats;
|
struct event_stat_id *stats;
|
||||||
struct perf_event_attr *attr;
|
struct perf_event_attr *attr;
|
||||||
|
|
||||||
if ((sort__has_parent || symbol_conf.use_callchain) && data->callchain)
|
if ((sort__has_parent || symbol_conf.use_callchain) && data->callchain) {
|
||||||
syms = perf_session__resolve_callchain(self, al->thread,
|
syms = perf_session__resolve_callchain(self, al->thread,
|
||||||
data->callchain, &parent);
|
data->callchain, &parent);
|
||||||
|
if (syms == NULL)
|
||||||
|
return -ENOMEM;
|
||||||
|
}
|
||||||
|
|
||||||
attr = perf_header__find_attr(data->id, &self->header);
|
attr = perf_header__find_attr(data->id, &self->header);
|
||||||
if (attr)
|
if (attr)
|
||||||
|
|
|
@ -118,16 +118,11 @@ struct map_symbol *perf_session__resolve_callchain(struct perf_session *self,
|
||||||
struct symbol **parent)
|
struct symbol **parent)
|
||||||
{
|
{
|
||||||
u8 cpumode = PERF_RECORD_MISC_USER;
|
u8 cpumode = PERF_RECORD_MISC_USER;
|
||||||
struct map_symbol *syms = NULL;
|
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
struct map_symbol *syms = calloc(chain->nr, sizeof(*syms));
|
||||||
|
|
||||||
if (symbol_conf.use_callchain) {
|
if (!syms)
|
||||||
syms = calloc(chain->nr, sizeof(*syms));
|
return NULL;
|
||||||
if (!syms) {
|
|
||||||
fprintf(stderr, "Can't allocate memory for symbols\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < chain->nr; i++) {
|
for (i = 0; i < chain->nr; i++) {
|
||||||
u64 ip = chain->ips[i];
|
u64 ip = chain->ips[i];
|
||||||
|
|
Loading…
Reference in New Issue