perf annotate browser: Use struct annotation_line in find functions

Use struct annotation_line in find functions:

  annotate_browser__find_string
  annotate_browser__find_string_reverse

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20171011150158.11895-33-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Jiri Olsa 2017-10-11 17:01:55 +02:00 committed by Arnaldo Carvalho de Melo
parent a5ef27020b
commit 9213afbdf9

View File

@ -606,23 +606,23 @@ static bool annotate_browser__jump(struct annotate_browser *browser)
}
static
struct disasm_line *annotate_browser__find_string(struct annotate_browser *browser,
struct annotation_line *annotate_browser__find_string(struct annotate_browser *browser,
char *s, s64 *idx)
{
struct map_symbol *ms = browser->b.priv;
struct symbol *sym = ms->sym;
struct annotation *notes = symbol__annotation(sym);
struct disasm_line *pos = disasm_line(browser->selection);
struct annotation_line *al = browser->selection;
*idx = browser->b.index;
list_for_each_entry_continue(pos, &notes->src->source, al.node) {
if (disasm_line__filter(&browser->b, &pos->al.node))
list_for_each_entry_continue(al, &notes->src->source, node) {
if (disasm_line__filter(&browser->b, &al->node))
continue;
++*idx;
if (pos->al.line && strstr(pos->al.line, s) != NULL)
return pos;
if (al->line && strstr(al->line, s) != NULL)
return al;
}
return NULL;
@ -630,38 +630,38 @@ struct disasm_line *annotate_browser__find_string(struct annotate_browser *brows
static bool __annotate_browser__search(struct annotate_browser *browser)
{
struct disasm_line *dl;
struct annotation_line *al;
s64 idx;
dl = annotate_browser__find_string(browser, browser->search_bf, &idx);
if (dl == NULL) {
al = annotate_browser__find_string(browser, browser->search_bf, &idx);
if (al == NULL) {
ui_helpline__puts("String not found!");
return false;
}
annotate_browser__set_top(browser, dl, idx);
annotate_browser__set_top(browser, disasm_line(al), idx);
browser->searching_backwards = false;
return true;
}
static
struct disasm_line *annotate_browser__find_string_reverse(struct annotate_browser *browser,
struct annotation_line *annotate_browser__find_string_reverse(struct annotate_browser *browser,
char *s, s64 *idx)
{
struct map_symbol *ms = browser->b.priv;
struct symbol *sym = ms->sym;
struct annotation *notes = symbol__annotation(sym);
struct disasm_line *pos = disasm_line(browser->selection);
struct annotation_line *al = browser->selection;
*idx = browser->b.index;
list_for_each_entry_continue_reverse(pos, &notes->src->source, al.node) {
if (disasm_line__filter(&browser->b, &pos->al.node))
list_for_each_entry_continue_reverse(al, &notes->src->source, node) {
if (disasm_line__filter(&browser->b, &al->node))
continue;
--*idx;
if (pos->al.line && strstr(pos->al.line, s) != NULL)
return pos;
if (al->line && strstr(al->line, s) != NULL)
return al;
}
return NULL;
@ -669,16 +669,16 @@ struct disasm_line *annotate_browser__find_string_reverse(struct annotate_browse
static bool __annotate_browser__search_reverse(struct annotate_browser *browser)
{
struct disasm_line *dl;
struct annotation_line *al;
s64 idx;
dl = annotate_browser__find_string_reverse(browser, browser->search_bf, &idx);
if (dl == NULL) {
al = annotate_browser__find_string_reverse(browser, browser->search_bf, &idx);
if (al == NULL) {
ui_helpline__puts("String not found!");
return false;
}
annotate_browser__set_top(browser, dl, idx);
annotate_browser__set_top(browser, disasm_line(al), idx);
browser->searching_backwards = true;
return true;
}