On Thu, Jan 22, 2026 at 3:47 AM Suchit Karunakaran <[email protected]> wrote: > > > @@ -1119,7 +1121,7 @@ static int symbol__parse_objdump_line(struct symbol > > *sym, > > struct annotate_args *args, > > char *parsed_line, int *line_nr, char > > **fileloc) > > { > > - struct map *map = args->ms.map; > > + struct map *map = args->ms->map; > > struct annotation *notes = symbol__annotation(sym); > > struct disasm_line *dl; > > char *tmp; > > @@ -1151,7 +1153,7 @@ static int symbol__parse_objdump_line(struct symbol > > *sym, > > args->line = parsed_line; > > args->line_nr = *line_nr; > > args->fileloc = *fileloc; > > - args->ms.sym = sym; > > + args->ms->sym = sym; > > > > dl = disasm_line__new(args); > > (*line_nr)++; > > @@ -1172,7 +1174,7 @@ static int symbol__parse_objdump_line(struct symbol > > *sym, > > .ms = { .map = map, }, > > }; > > > > - if (!maps__find_ams(args->ms.maps, &target) && > > + if (!maps__find_ams(args->ms->maps, &target) && > > target.ms.sym->start == target.al_addr) > > dl->ops.target.sym = target.ms.sym; > > } > > Hi, a noob here so please correct me if I'm wrong. > Looking at symbol__parse_objdump_line(), shouldn't we be calling > map__get() when initializing the target struct? Since maps__find_ams() > now calls map__put() (after patch 1). > struct addr_map_symbol target = { > .addr = dl->ops.target.addr, > .ms = { .map = map__get(map), }, > }; > This would match the pattern used in call__parse() and jump__parse() > that were fixed in patch 2.
Agreed this is another problem. I'll add the missing put and addr_map_symbol__exit missing here. Thanks, Ian
