perf report/top TUI: Fix title line formatting
authorArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 30 Mar 2020 15:35:21 +0000 (12:35 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 3 Apr 2020 12:37:55 +0000 (09:37 -0300)
In d10ec006dcd7 ("perf hists browser: Allow passing an initial hotkey")
the hist_entry__title() call was cut'n'pasted to a function where the
'title' variable is a pointer, not an array, so the sizeof(title)
continues syntactically valid but ends up reducing the real size of the
buffer where to format the first line in the screen to 8 bytes, which
makes the formatting at the title at each refresh to produce just the
string "Samples ", duh, fix it by passing the size of the buffer.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jin Yao <yao.jin@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Fixes: d10ec006dcd7 ("perf hists browser: Allow passing an initial hotkey")
Link: http://lore.kernel.org/lkml/20200330154314.GB4576@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/ui/browsers/hists.c

index 95ac5e2ea9492594ccb53b8c02cbfb6133728340..487e54ef56a981bc7600d2a0ca905e7a9106b27f 100644 (file)
@@ -677,7 +677,7 @@ static int hist_browser__title(struct hist_browser *browser, char *bf, size_t si
        return browser->title ? browser->title(browser, bf, size) : 0;
 }
 
-static int hist_browser__handle_hotkey(struct hist_browser *browser, bool warn_lost_event, char *title, int key)
+static int hist_browser__handle_hotkey(struct hist_browser *browser, bool warn_lost_event, char *title, size_t size, int key)
 {
        switch (key) {
        case K_TIMER: {
@@ -703,7 +703,7 @@ static int hist_browser__handle_hotkey(struct hist_browser *browser, bool warn_l
                        ui_browser__warn_lost_events(&browser->b);
                }
 
-               hist_browser__title(browser, title, sizeof(title));
+               hist_browser__title(browser, title, size);
                ui_browser__show_title(&browser->b, title);
                break;
        }
@@ -764,13 +764,13 @@ int hist_browser__run(struct hist_browser *browser, const char *help,
        if (ui_browser__show(&browser->b, title, "%s", help) < 0)
                return -1;
 
-       if (key && hist_browser__handle_hotkey(browser, warn_lost_event, title, key))
+       if (key && hist_browser__handle_hotkey(browser, warn_lost_event, title, sizeof(title), key))
                goto out;
 
        while (1) {
                key = ui_browser__run(&browser->b, delay_secs);
 
-               if (hist_browser__handle_hotkey(browser, warn_lost_event, title, key))
+               if (hist_browser__handle_hotkey(browser, warn_lost_event, title, sizeof(title), key))
                        break;
        }
 out: