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:
@@ -2405,16 +2405,15 @@ do_annotate(struct hist_browser *browser, struct popup_action *act)
|
||||
static int
|
||||
add_annotate_opt(struct hist_browser *browser __maybe_unused,
|
||||
struct popup_action *act, char **optstr,
|
||||
struct map *map, struct symbol *sym)
|
||||
struct map_symbol *ms)
|
||||
{
|
||||
if (sym == NULL || map->dso->annotate_warned)
|
||||
if (ms->sym == NULL || ms->map->dso->annotate_warned)
|
||||
return 0;
|
||||
|
||||
if (asprintf(optstr, "Annotate %s", sym->name) < 0)
|
||||
if (asprintf(optstr, "Annotate %s", ms->sym->name) < 0)
|
||||
return 0;
|
||||
|
||||
act->ms.map = map;
|
||||
act->ms.sym = sym;
|
||||
act->ms = *ms;
|
||||
act->fn = do_annotate;
|
||||
return 1;
|
||||
}
|
||||
@@ -3115,20 +3114,17 @@ static int perf_evsel__hists_browse(struct evsel *evsel, int nr_events,
|
||||
nr_options += add_annotate_opt(browser,
|
||||
&actions[nr_options],
|
||||
&options[nr_options],
|
||||
bi->from.map,
|
||||
bi->from.sym);
|
||||
if (bi->to.sym != bi->from.sym)
|
||||
&bi->from.ms);
|
||||
if (bi->to.ms.sym != bi->from.ms.sym)
|
||||
nr_options += add_annotate_opt(browser,
|
||||
&actions[nr_options],
|
||||
&options[nr_options],
|
||||
bi->to.map,
|
||||
bi->to.sym);
|
||||
&bi->to.ms);
|
||||
} else {
|
||||
nr_options += add_annotate_opt(browser,
|
||||
&actions[nr_options],
|
||||
&options[nr_options],
|
||||
browser->selection->map,
|
||||
browser->selection->sym);
|
||||
browser->selection);
|
||||
}
|
||||
skip_annotation:
|
||||
nr_options += add_thread_opt(browser, &actions[nr_options],
|
||||
|
Reference in New Issue
Block a user