pref tools: Make 'struct addr_map_symbol' contain 'struct map_symbol'
So that we pass that substructure around and with it consolidate lots of functions that receive a (map, symbol) pair and now can receive just a 'struct map_symbol' pointer. This further paves the way to add 'struct map_groups' to 'struct map_symbol' so that we can have all we need for annotation so that we can ditch 'struct map'->groups, i.e. have the map_groups pointer in a more central place, avoiding the pointer in the 'struct map' that have tons of instances. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Link: https://lkml.kernel.org/n/tip-fs90ttd9q12l7989fo7pw81q@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
@@ -112,13 +112,13 @@ void hists__calc_col_len(struct hists *hists, struct hist_entry *h)
|
||||
hists__new_col_len(hists, HISTC_PARENT, h->parent->namelen);
|
||||
|
||||
if (h->branch_info) {
|
||||
if (h->branch_info->from.sym) {
|
||||
symlen = (int)h->branch_info->from.sym->namelen + 4;
|
||||
if (h->branch_info->from.ms.sym) {
|
||||
symlen = (int)h->branch_info->from.ms.sym->namelen + 4;
|
||||
if (verbose > 0)
|
||||
symlen += BITS_PER_LONG / 4 + 2 + 3;
|
||||
hists__new_col_len(hists, HISTC_SYMBOL_FROM, symlen);
|
||||
|
||||
symlen = dso__name_len(h->branch_info->from.map->dso);
|
||||
symlen = dso__name_len(h->branch_info->from.ms.map->dso);
|
||||
hists__new_col_len(hists, HISTC_DSO_FROM, symlen);
|
||||
} else {
|
||||
symlen = unresolved_col_width + 4 + 2;
|
||||
@@ -126,13 +126,13 @@ void hists__calc_col_len(struct hists *hists, struct hist_entry *h)
|
||||
hists__set_unres_dso_col_len(hists, HISTC_DSO_FROM);
|
||||
}
|
||||
|
||||
if (h->branch_info->to.sym) {
|
||||
symlen = (int)h->branch_info->to.sym->namelen + 4;
|
||||
if (h->branch_info->to.ms.sym) {
|
||||
symlen = (int)h->branch_info->to.ms.sym->namelen + 4;
|
||||
if (verbose > 0)
|
||||
symlen += BITS_PER_LONG / 4 + 2 + 3;
|
||||
hists__new_col_len(hists, HISTC_SYMBOL_TO, symlen);
|
||||
|
||||
symlen = dso__name_len(h->branch_info->to.map->dso);
|
||||
symlen = dso__name_len(h->branch_info->to.ms.map->dso);
|
||||
hists__new_col_len(hists, HISTC_DSO_TO, symlen);
|
||||
} else {
|
||||
symlen = unresolved_col_width + 4 + 2;
|
||||
@@ -149,8 +149,8 @@ void hists__calc_col_len(struct hists *hists, struct hist_entry *h)
|
||||
}
|
||||
|
||||
if (h->mem_info) {
|
||||
if (h->mem_info->daddr.sym) {
|
||||
symlen = (int)h->mem_info->daddr.sym->namelen + 4
|
||||
if (h->mem_info->daddr.ms.sym) {
|
||||
symlen = (int)h->mem_info->daddr.ms.sym->namelen + 4
|
||||
+ unresolved_col_width + 2;
|
||||
hists__new_col_len(hists, HISTC_MEM_DADDR_SYMBOL,
|
||||
symlen);
|
||||
@@ -164,8 +164,8 @@ void hists__calc_col_len(struct hists *hists, struct hist_entry *h)
|
||||
symlen);
|
||||
}
|
||||
|
||||
if (h->mem_info->iaddr.sym) {
|
||||
symlen = (int)h->mem_info->iaddr.sym->namelen + 4
|
||||
if (h->mem_info->iaddr.ms.sym) {
|
||||
symlen = (int)h->mem_info->iaddr.ms.sym->namelen + 4
|
||||
+ unresolved_col_width + 2;
|
||||
hists__new_col_len(hists, HISTC_MEM_IADDR_SYMBOL,
|
||||
symlen);
|
||||
@@ -175,8 +175,8 @@ void hists__calc_col_len(struct hists *hists, struct hist_entry *h)
|
||||
symlen);
|
||||
}
|
||||
|
||||
if (h->mem_info->daddr.map) {
|
||||
symlen = dso__name_len(h->mem_info->daddr.map->dso);
|
||||
if (h->mem_info->daddr.ms.map) {
|
||||
symlen = dso__name_len(h->mem_info->daddr.ms.map->dso);
|
||||
hists__new_col_len(hists, HISTC_MEM_DADDR_DSO,
|
||||
symlen);
|
||||
} else {
|
||||
@@ -443,13 +443,13 @@ static int hist_entry__init(struct hist_entry *he,
|
||||
memcpy(he->branch_info, template->branch_info,
|
||||
sizeof(*he->branch_info));
|
||||
|
||||
map__get(he->branch_info->from.map);
|
||||
map__get(he->branch_info->to.map);
|
||||
map__get(he->branch_info->from.ms.map);
|
||||
map__get(he->branch_info->to.ms.map);
|
||||
}
|
||||
|
||||
if (he->mem_info) {
|
||||
map__get(he->mem_info->iaddr.map);
|
||||
map__get(he->mem_info->daddr.map);
|
||||
map__get(he->mem_info->iaddr.ms.map);
|
||||
map__get(he->mem_info->daddr.ms.map);
|
||||
}
|
||||
|
||||
if (hist_entry__has_callchains(he) && symbol_conf.use_callchain)
|
||||
@@ -492,13 +492,13 @@ err_rawdata:
|
||||
|
||||
err_infos:
|
||||
if (he->branch_info) {
|
||||
map__put(he->branch_info->from.map);
|
||||
map__put(he->branch_info->to.map);
|
||||
map__put(he->branch_info->from.ms.map);
|
||||
map__put(he->branch_info->to.ms.map);
|
||||
zfree(&he->branch_info);
|
||||
}
|
||||
if (he->mem_info) {
|
||||
map__put(he->mem_info->iaddr.map);
|
||||
map__put(he->mem_info->daddr.map);
|
||||
map__put(he->mem_info->iaddr.ms.map);
|
||||
map__put(he->mem_info->daddr.ms.map);
|
||||
}
|
||||
err:
|
||||
map__zput(he->ms.map);
|
||||
@@ -893,8 +893,8 @@ iter_next_branch_entry(struct hist_entry_iter *iter, struct addr_location *al)
|
||||
if (iter->curr >= iter->total)
|
||||
return 0;
|
||||
|
||||
al->map = bi[i].to.map;
|
||||
al->sym = bi[i].to.sym;
|
||||
al->map = bi[i].to.ms.map;
|
||||
al->sym = bi[i].to.ms.sym;
|
||||
al->addr = bi[i].to.addr;
|
||||
return 1;
|
||||
}
|
||||
@@ -912,7 +912,7 @@ iter_add_next_branch_entry(struct hist_entry_iter *iter, struct addr_location *a
|
||||
|
||||
bi = iter->priv;
|
||||
|
||||
if (iter->hide_unresolved && !(bi[i].from.sym && bi[i].to.sym))
|
||||
if (iter->hide_unresolved && !(bi[i].from.ms.sym && bi[i].to.ms.sym))
|
||||
goto out;
|
||||
|
||||
/*
|
||||
@@ -1251,16 +1251,16 @@ void hist_entry__delete(struct hist_entry *he)
|
||||
map__zput(he->ms.map);
|
||||
|
||||
if (he->branch_info) {
|
||||
map__zput(he->branch_info->from.map);
|
||||
map__zput(he->branch_info->to.map);
|
||||
map__zput(he->branch_info->from.ms.map);
|
||||
map__zput(he->branch_info->to.ms.map);
|
||||
free_srcline(he->branch_info->srcline_from);
|
||||
free_srcline(he->branch_info->srcline_to);
|
||||
zfree(&he->branch_info);
|
||||
}
|
||||
|
||||
if (he->mem_info) {
|
||||
map__zput(he->mem_info->iaddr.map);
|
||||
map__zput(he->mem_info->daddr.map);
|
||||
map__zput(he->mem_info->iaddr.ms.map);
|
||||
map__zput(he->mem_info->daddr.ms.map);
|
||||
mem_info__zput(he->mem_info);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user