Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 304872
b: refs/heads/master
c: 83b1f2a
h: refs/heads/master
v: v3
  • Loading branch information
Arnaldo Carvalho de Melo committed May 3, 2012
1 parent 9d3e2d1 commit e30be9f
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 29 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4656cca11b07a13785aa8574ed4db6c540e48ed8
refs/heads/master: 83b1f2aad46c4af7df5ba6071fbba2d5cb025985
14 changes: 7 additions & 7 deletions trunk/tools/perf/ui/browser.c
Original file line number Diff line number Diff line change
Expand Up @@ -611,7 +611,7 @@ void ui_browser__write_graph(struct ui_browser *browser __used, int graph)

static void __ui_browser__line_arrow_up(struct ui_browser *browser,
unsigned int column,
u64 start, u64 end, int start_width)
u64 start, u64 end)
{
unsigned int row, end_row;

Expand All @@ -622,7 +622,7 @@ static void __ui_browser__line_arrow_up(struct ui_browser *browser,
ui_browser__gotorc(browser, row, column);
SLsmg_write_char(SLSMG_LLCORN_CHAR);
ui_browser__gotorc(browser, row, column + 1);
SLsmg_draw_hline(start_width);
SLsmg_draw_hline(2);

if (row-- == 0)
goto out;
Expand Down Expand Up @@ -651,7 +651,7 @@ static void __ui_browser__line_arrow_up(struct ui_browser *browser,

static void __ui_browser__line_arrow_down(struct ui_browser *browser,
unsigned int column,
u64 start, u64 end, int start_width)
u64 start, u64 end)
{
unsigned int row, end_row;

Expand All @@ -662,7 +662,7 @@ static void __ui_browser__line_arrow_down(struct ui_browser *browser,
ui_browser__gotorc(browser, row, column);
SLsmg_write_char(SLSMG_ULCORN_CHAR);
ui_browser__gotorc(browser, row, column + 1);
SLsmg_draw_hline(start_width);
SLsmg_draw_hline(2);

if (row++ == 0)
goto out;
Expand Down Expand Up @@ -690,12 +690,12 @@ static void __ui_browser__line_arrow_down(struct ui_browser *browser,
}

void __ui_browser__line_arrow(struct ui_browser *browser, unsigned int column,
u64 start, u64 end, int start_width)
u64 start, u64 end)
{
if (start > end)
__ui_browser__line_arrow_up(browser, column, start, end, start_width);
__ui_browser__line_arrow_up(browser, column, start, end);
else
__ui_browser__line_arrow_down(browser, column, start, end, start_width);
__ui_browser__line_arrow_down(browser, column, start, end);
}

void ui_browser__init(void)
Expand Down
2 changes: 1 addition & 1 deletion trunk/tools/perf/ui/browser.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ void ui_browser__reset_index(struct ui_browser *self);
void ui_browser__gotorc(struct ui_browser *self, int y, int x);
void ui_browser__write_graph(struct ui_browser *browser, int graph);
void __ui_browser__line_arrow(struct ui_browser *browser, unsigned int column,
u64 start, u64 end, int start_width);
u64 start, u64 end);
void __ui_browser__show_title(struct ui_browser *browser, const char *title);
void ui_browser__show_title(struct ui_browser *browser, const char *title);
int ui_browser__show(struct ui_browser *self, const char *title,
Expand Down
48 changes: 28 additions & 20 deletions trunk/tools/perf/ui/browsers/annotate.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ struct annotate_browser {
bool use_offset;
bool jump_arrows;
bool searching_backwards;
u8 offset_width;
u8 addr_width;
u8 min_addr_width;
u8 max_addr_width;
char search_bf[128];
};

Expand Down Expand Up @@ -62,7 +64,8 @@ static void annotate_browser__write(struct ui_browser *self, void *entry, int ro
bool change_color = (!ab->hide_src_code &&
(!current_entry || (self->use_navkeypressed &&
!self->navkeypressed)));
int width = self->width;
int width = self->width, printed;
char bf[256];

if (dl->offset != -1 && bdl->percent != 0.0) {
ui_browser__set_percent_color(self, bdl->percent, current_entry);
Expand All @@ -83,25 +86,27 @@ static void annotate_browser__write(struct ui_browser *self, void *entry, int ro

if (!*dl->line)
slsmg_write_nstring(" ", width - 7);
else if (dl->offset == -1)
slsmg_write_nstring(dl->line, width - 7);
else {
char bf[256];
else if (dl->offset == -1) {
printed = scnprintf(bf, sizeof(bf), "%*s ",
ab->addr_width, " ");
slsmg_write_nstring(bf, printed);
slsmg_write_nstring(dl->line, width - printed - 6);
} else {
u64 addr = dl->offset;
int printed, color = -1;
int color = -1;

if (!ab->use_offset)
addr += ab->start;

if (!ab->use_offset) {
printed = scnprintf(bf, sizeof(bf), " %" PRIx64 ":", addr);
printed = scnprintf(bf, sizeof(bf), "%" PRIx64 ": ", addr);
} else {
if (bdl->jump_target) {
printed = scnprintf(bf, sizeof(bf), " %*" PRIx64 ":",
ab->offset_width, addr);
printed = scnprintf(bf, sizeof(bf), "%*" PRIx64 ": ",
ab->addr_width, addr);
} else {
printed = scnprintf(bf, sizeof(bf), " %*s ",
ab->offset_width, " ");
printed = scnprintf(bf, sizeof(bf), "%*s ",
ab->addr_width, " ");
}
}

Expand Down Expand Up @@ -137,7 +142,7 @@ static void annotate_browser__write(struct ui_browser *self, void *entry, int ro
scnprintf(bf, sizeof(bf), "%-6.6s %s", dl->name, dl->ops.raw);
}

slsmg_write_nstring(bf, width - 9 - printed);
slsmg_write_nstring(bf, width - 10 - printed);
}

if (current_entry)
Expand All @@ -149,7 +154,7 @@ static void annotate_browser__draw_current_jump(struct ui_browser *browser)
struct annotate_browser *ab = container_of(browser, struct annotate_browser, b);
struct disasm_line *cursor = ab->selection, *target;
struct browser_disasm_line *btarget, *bcursor;
unsigned int from, to, start_width = 2;
unsigned int from, to;

if (!cursor->ins || !ins__is_jump(cursor->ins) ||
!disasm_line__has_offset(cursor))
Expand All @@ -171,11 +176,7 @@ static void annotate_browser__draw_current_jump(struct ui_browser *browser)
}

ui_browser__set_color(browser, HE_COLORSET_CODE);

if (!bcursor->jump_target)
start_width += ab->offset_width + 1;

__ui_browser__line_arrow(browser, 7, from, to, start_width);
__ui_browser__line_arrow(browser, 9 + ab->addr_width, from, to);
}

static unsigned int annotate_browser__refresh(struct ui_browser *browser)
Expand All @@ -186,6 +187,8 @@ static unsigned int annotate_browser__refresh(struct ui_browser *browser)
if (ab->jump_arrows)
annotate_browser__draw_current_jump(browser);

ui_browser__set_color(browser, HE_COLORSET_NORMAL);
__ui_browser__vline(browser, 7, 0, browser->height - 1);
return ret;
}

Expand Down Expand Up @@ -618,6 +621,10 @@ static int annotate_browser__run(struct annotate_browser *self, int evidx,
case 'O':
case 'o':
self->use_offset = !self->use_offset;
if (self->use_offset)
self->addr_width = self->min_addr_width;
else
self->addr_width = self->max_addr_width;
continue;
case 'j':
self->jump_arrows = !self->jump_arrows;
Expand Down Expand Up @@ -784,7 +791,8 @@ int symbol__tui_annotate(struct symbol *sym, struct map *map, int evidx,

annotate_browser__mark_jump_targets(&browser, size);

browser.offset_width = hex_width(size);
browser.addr_width = browser.min_addr_width = hex_width(size);
browser.max_addr_width = hex_width(sym->end);
browser.b.nr_entries = browser.nr_entries;
browser.b.entries = &notes->src->source,
browser.b.width += 18; /* Percentage */
Expand Down

0 comments on commit e30be9f

Please sign in to comment.