Messages in this thread | | | Subject | Re: [PATCH 3/4] perf config: Initialize ui_browser__colorsets with default config items | From | Taeung Song <> | Date | Tue, 10 May 2016 20:57:04 +0900 |
| |
On 05/10/2016 02:19 AM, Arnaldo Carvalho de Melo wrote: > Em Mon, May 09, 2016 at 08:41:48PM +0900, Taeung Song escreveu: >> Set default config values for 'colors' section with 'colors_config_items[]' >> instead of actual const char * type values. >> (e.g. using colors_config_item[CONFIG_COLORS_TOP].value >> instead of "red, default" string value for 'colors.top') > > looks ok
Thank you for your review !! But I'm waiting for your opinion because of previous mail if there's any change, I'll resend this patch after modifying it. :)
Thanks, Taeung
> >> Cc: Namhyung Kim <namhyung@kernel.org> >> Cc: Jiri Olsa <jolsa@kernel.org> >> Signed-off-by: Taeung Song <treeze.taeung@gmail.com> >> --- >> tools/perf/ui/browser.c | 46 ++++++++++++++++++++++++++++++++-------------- >> tools/perf/ui/browser.h | 1 + >> tools/perf/ui/tui/setup.c | 1 + >> tools/perf/util/cache.h | 1 + >> tools/perf/util/config.h | 12 ++++++++++++ >> 5 files changed, 47 insertions(+), 14 deletions(-) >> >> diff --git a/tools/perf/ui/browser.c b/tools/perf/ui/browser.c >> index a477867..385d0de 100644 >> --- a/tools/perf/ui/browser.c >> +++ b/tools/perf/ui/browser.c >> @@ -509,44 +509,30 @@ static struct ui_browser_colorset { >> { >> .colorset = HE_COLORSET_TOP, >> .name = "top", >> - .fg = "red", >> - .bg = "default", >> }, >> { >> .colorset = HE_COLORSET_MEDIUM, >> .name = "medium", >> - .fg = "green", >> - .bg = "default", >> }, >> { >> .colorset = HE_COLORSET_NORMAL, >> .name = "normal", >> - .fg = "default", >> - .bg = "default", >> }, >> { >> .colorset = HE_COLORSET_SELECTED, >> .name = "selected", >> - .fg = "black", >> - .bg = "yellow", >> }, >> { >> .colorset = HE_COLORSET_JUMP_ARROWS, >> .name = "jump_arrows", >> - .fg = "blue", >> - .bg = "default", >> }, >> { >> .colorset = HE_COLORSET_ADDR, >> .name = "addr", >> - .fg = "magenta", >> - .bg = "default", >> }, >> { >> .colorset = HE_COLORSET_ROOT, >> .name = "root", >> - .fg = "white", >> - .bg = "blue", >> }, >> { >> .name = NULL, >> @@ -591,6 +577,7 @@ static int ui_browser__color_config(const char *var, const char *value, >> if (strcmp(ui_browser__colorsets[i].name, name) != 0) >> continue; >> >> + zfree((char **)&ui_browser__colorsets[i].fg); >> ret = ui_browser__config_gcolors(&ui_browser__colorsets[i], value); >> break; >> } >> @@ -745,10 +732,41 @@ void __ui_browser__line_arrow(struct ui_browser *browser, unsigned int column, >> __ui_browser__line_arrow_down(browser, column, start, end); >> } >> >> +static void ui_browser__free_color_configs(void) >> +{ >> + int i; >> + >> + for (i = 0; ui_browser__colorsets[i].name != NULL; ++i) >> + zfree((char **)&ui_browser__colorsets[i].fg); >> +} >> + >> +void ui_browser__free(void) >> +{ >> + ui_browser__free_color_configs(); >> +} >> + >> +static void ui_browser__init_colorsets(void) >> +{ >> + int i, j; >> + >> + for (i = 0; ui_browser__colorsets[i].name != NULL; ++i) { >> + const char *name = ui_browser__colorsets[i].name; >> + >> + for (j = 0; colors_config_items[j].name != NULL; j++) { >> + if (!strcmp(name, colors_config_items[j].name)) { >> + ui_browser__config_gcolors(&ui_browser__colorsets[i], >> + colors_config_items[j].value.s); >> + break; >> + } >> + } >> + } >> +} >> + >> void ui_browser__init(void) >> { >> int i = 0; >> >> + ui_browser__init_colorsets(); >> perf_config(ui_browser__color_config, NULL); >> >> while (ui_browser__colorsets[i].name) { >> diff --git a/tools/perf/ui/browser.h b/tools/perf/ui/browser.h >> index be3b70e..7a83a1a 100644 >> --- a/tools/perf/ui/browser.h >> +++ b/tools/perf/ui/browser.h >> @@ -74,5 +74,6 @@ void ui_browser__list_head_seek(struct ui_browser *browser, off_t offset, int wh >> unsigned int ui_browser__list_head_refresh(struct ui_browser *browser); >> >> void ui_browser__init(void); >> +void ui_browser__free(void); >> void annotate_browser__init(void); >> #endif /* _PERF_UI_BROWSER_H_ */ >> diff --git a/tools/perf/ui/tui/setup.c b/tools/perf/ui/tui/setup.c >> index 7dfeba0..7999a57 100644 >> --- a/tools/perf/ui/tui/setup.c >> +++ b/tools/perf/ui/tui/setup.c >> @@ -171,4 +171,5 @@ void ui__exit(bool wait_for_ok) >> SLang_reset_tty(); >> >> perf_error__unregister(&perf_tui_eops); >> + ui_browser__free(); >> } >> diff --git a/tools/perf/util/cache.h b/tools/perf/util/cache.h >> index 1f5a93c..8eab653 100644 >> --- a/tools/perf/util/cache.h >> +++ b/tools/perf/util/cache.h >> @@ -7,6 +7,7 @@ >> #include <subcmd/pager.h> >> #include "../perf.h" >> #include "../ui/ui.h" >> +#include "config.h" >> >> #include <linux/string.h> >> >> diff --git a/tools/perf/util/config.h b/tools/perf/util/config.h >> index 84414af..e0c8392 100644 >> --- a/tools/perf/util/config.h >> +++ b/tools/perf/util/config.h >> @@ -44,6 +44,16 @@ struct perf_config_set { >> struct list_head sections; >> }; >> >> +enum colors_config_items_idx { >> + CONFIG_COLORS_TOP, >> + CONFIG_COLORS_MEDIUM, >> + CONFIG_COLORS_NORMAL, >> + CONFIG_COLORS_SELECTED, >> + CONFIG_COLORS_JUMP_ARROWS, >> + CONFIG_COLORS_ADDR, >> + CONFIG_COLORS_ROOT, >> +}; >> + >> #define CONF_VAR(_name, _field, _val, _type) \ >> { .name = _name, .value._field = _val, .type = _type } >> >> @@ -64,6 +74,8 @@ struct perf_config_set { >> #define CONF_END() \ >> { .name = NULL } >> >> +extern const struct default_config_item colors_config_items[]; >> + >> struct perf_config_set *perf_config_set__new(void); >> void perf_config_set__delete(struct perf_config_set *set); >> >> -- >> 2.5.0
| |