forked from luck/tmp_suning_uos_patched
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:
parent
a5ef27020b
commit
9213afbdf9
|
@ -606,23 +606,23 @@ static bool annotate_browser__jump(struct annotate_browser *browser)
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
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)
|
char *s, s64 *idx)
|
||||||
{
|
{
|
||||||
struct map_symbol *ms = browser->b.priv;
|
struct map_symbol *ms = browser->b.priv;
|
||||||
struct symbol *sym = ms->sym;
|
struct symbol *sym = ms->sym;
|
||||||
struct annotation *notes = symbol__annotation(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;
|
*idx = browser->b.index;
|
||||||
list_for_each_entry_continue(pos, ¬es->src->source, al.node) {
|
list_for_each_entry_continue(al, ¬es->src->source, node) {
|
||||||
if (disasm_line__filter(&browser->b, &pos->al.node))
|
if (disasm_line__filter(&browser->b, &al->node))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
++*idx;
|
++*idx;
|
||||||
|
|
||||||
if (pos->al.line && strstr(pos->al.line, s) != NULL)
|
if (al->line && strstr(al->line, s) != NULL)
|
||||||
return pos;
|
return al;
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
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)
|
static bool __annotate_browser__search(struct annotate_browser *browser)
|
||||||
{
|
{
|
||||||
struct disasm_line *dl;
|
struct annotation_line *al;
|
||||||
s64 idx;
|
s64 idx;
|
||||||
|
|
||||||
dl = annotate_browser__find_string(browser, browser->search_bf, &idx);
|
al = annotate_browser__find_string(browser, browser->search_bf, &idx);
|
||||||
if (dl == NULL) {
|
if (al == NULL) {
|
||||||
ui_helpline__puts("String not found!");
|
ui_helpline__puts("String not found!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
annotate_browser__set_top(browser, dl, idx);
|
annotate_browser__set_top(browser, disasm_line(al), idx);
|
||||||
browser->searching_backwards = false;
|
browser->searching_backwards = false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
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)
|
char *s, s64 *idx)
|
||||||
{
|
{
|
||||||
struct map_symbol *ms = browser->b.priv;
|
struct map_symbol *ms = browser->b.priv;
|
||||||
struct symbol *sym = ms->sym;
|
struct symbol *sym = ms->sym;
|
||||||
struct annotation *notes = symbol__annotation(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;
|
*idx = browser->b.index;
|
||||||
list_for_each_entry_continue_reverse(pos, ¬es->src->source, al.node) {
|
list_for_each_entry_continue_reverse(al, ¬es->src->source, node) {
|
||||||
if (disasm_line__filter(&browser->b, &pos->al.node))
|
if (disasm_line__filter(&browser->b, &al->node))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
--*idx;
|
--*idx;
|
||||||
|
|
||||||
if (pos->al.line && strstr(pos->al.line, s) != NULL)
|
if (al->line && strstr(al->line, s) != NULL)
|
||||||
return pos;
|
return al;
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
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)
|
static bool __annotate_browser__search_reverse(struct annotate_browser *browser)
|
||||||
{
|
{
|
||||||
struct disasm_line *dl;
|
struct annotation_line *al;
|
||||||
s64 idx;
|
s64 idx;
|
||||||
|
|
||||||
dl = annotate_browser__find_string_reverse(browser, browser->search_bf, &idx);
|
al = annotate_browser__find_string_reverse(browser, browser->search_bf, &idx);
|
||||||
if (dl == NULL) {
|
if (al == NULL) {
|
||||||
ui_helpline__puts("String not found!");
|
ui_helpline__puts("String not found!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
annotate_browser__set_top(browser, dl, idx);
|
annotate_browser__set_top(browser, disasm_line(al), idx);
|
||||||
browser->searching_backwards = true;
|
browser->searching_backwards = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user