X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Ftui%2Ftui-data.c;h=e5f2f5ba657d5c346c0e5518e6500af0cc3b87f8;hb=e2e31f1039e614b11277f5f1acc4182cd7fd3f2c;hp=3c5bce1b05f064ea22105dd3232572611193a202;hpb=32d0add0a654c1204ab71dc8a55d9374538c4b33;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c index 3c5bce1b05..e5f2f5ba65 100644 --- a/gdb/tui/tui-data.c +++ b/gdb/tui/tui-data.c @@ -1,6 +1,6 @@ /* TUI data manipulation routines. - Copyright (C) 1998-2015 Free Software Foundation, Inc. + Copyright (C) 1998-2018 Free Software Foundation, Inc. Contributed by Hewlett-Packard Company. @@ -29,7 +29,7 @@ /**************************** ** GLOBAL DECLARATIONS ****************************/ -struct tui_win_info *(tui_win_list[MAX_MAJOR_WINDOWS]); +struct tui_win_info *tui_win_list[MAX_MAJOR_WINDOWS]; /*************************** ** Private data @@ -41,12 +41,10 @@ static struct tui_gen_win_info exec_info[2]; static struct tui_win_info *src_win_list[2]; static struct tui_list source_windows = {src_win_list, 0}; static int default_tab_len = DEFAULT_TAB_LEN; -static struct tui_win_info *win_with_focus = (struct tui_win_info *) NULL; +static struct tui_win_info *win_with_focus = NULL; static struct tui_layout_def layout_def = { SRC_WIN, /* DISPLAY_MODE */ - FALSE, /* SPLIT */ - TUI_UNDEFINED_REGS, /* REGS_DISPLAY_TYPE */ - TUI_SFLOAT_REGS}; /* FLOAT_REGS_DISPLAY_TYPE */ + FALSE}; /* SPLIT */ static int win_resized = FALSE; @@ -194,7 +192,7 @@ void tui_add_to_source_windows (struct tui_win_info *win_info) { if (source_windows.count < 2) - source_windows.list[source_windows.count++] = (void *) win_info; + source_windows.list[source_windows.count++] = win_info; } @@ -214,8 +212,7 @@ tui_clear_win_detail (struct tui_win_info *win_info) win_info->detail.source_info.horizontal_offset = 0; break; case CMD_WIN: - win_info->detail.command_info.cur_line = - win_info->detail.command_info.curch = 0; + wmove (win_info->generic.handle, 0, 0); break; case DATA_WIN: win_info->detail.data_display_info.data_content = @@ -224,8 +221,6 @@ tui_clear_win_detail (struct tui_win_info *win_info) win_info->detail.data_display_info.regs_content = (tui_win_content) NULL; win_info->detail.data_display_info.regs_content_count = 0; - win_info->detail.data_display_info.regs_display_type = - TUI_UNDEFINED_REGS; win_info->detail.data_display_info.regs_column_count = 1; win_info->detail.data_display_info.display_regs = FALSE; break; @@ -319,8 +314,8 @@ tui_set_current_layout_to (enum tui_layout_type new_layout) struct tui_win_info * tui_next_win (struct tui_win_info *cur_win) { - enum tui_win_type type = cur_win->generic.type; - struct tui_win_info *next_win = (struct tui_win_info *) NULL; + int type = cur_win->generic.type; + struct tui_win_info *next_win = NULL; if (cur_win->generic.type == CMD_WIN) type = SRC_WIN; @@ -349,8 +344,8 @@ tui_next_win (struct tui_win_info *cur_win) struct tui_win_info * tui_prev_win (struct tui_win_info *cur_win) { - enum tui_win_type type = cur_win->generic.type; - struct tui_win_info *prev = (struct tui_win_info *) NULL; + int type = cur_win->generic.type; + struct tui_win_info *prev = NULL; if (cur_win->generic.type == SRC_WIN) type = CMD_WIN; @@ -376,9 +371,9 @@ tui_prev_win (struct tui_win_info *cur_win) /* Answer the window represented by name. */ struct tui_win_info * -tui_partial_win_by_name (char *name) +tui_partial_win_by_name (const char *name) { - struct tui_win_info *win_info = (struct tui_win_info *) NULL; + struct tui_win_info *win_info = NULL; if (name != (char *) NULL) { @@ -388,10 +383,11 @@ tui_partial_win_by_name (char *name) { if (tui_win_list[i] != 0) { - char *cur_name = tui_win_name (&tui_win_list[i]->generic); + const char *cur_name = + tui_win_name (&tui_win_list[i]->generic); if (strlen (name) <= strlen (cur_name) - && strncmp (name, cur_name, strlen (name)) == 0) + && startswith (cur_name, name)) win_info = tui_win_list[i]; } i++; @@ -403,10 +399,10 @@ tui_partial_win_by_name (char *name) /* Answer the name of the window. */ -char * -tui_win_name (struct tui_gen_win_info *win_info) +const char * +tui_win_name (const struct tui_gen_win_info *win_info) { - char *name = (char *) NULL; + const char *name = NULL; switch (win_info->type) { @@ -443,9 +439,9 @@ tui_initialize_static_data (void) struct tui_gen_win_info * tui_alloc_generic_win_info (void) { - struct tui_gen_win_info *win; + struct tui_gen_win_info *win = XNEW (struct tui_gen_win_info); - if ((win = XNEW (struct tui_gen_win_info)) != NULL) + if (win != NULL) tui_init_generic_part (win); return win; @@ -462,7 +458,7 @@ tui_init_generic_part (struct tui_gen_win_info *win) win->viewport_height = win->content_size = win->last_visible_line = 0; - win->handle = (WINDOW *) NULL; + win->handle = NULL; win->content = NULL; win->content_in_use = win->is_visible = FALSE; @@ -481,7 +477,7 @@ init_content_element (struct tui_win_element *element, { case SRC_WIN: case DISASSEM_WIN: - element->which_element.source.line = (char *) NULL; + element->which_element.source.line = NULL; element->which_element.source.line_or_addr.loa = LOA_LINE; element->which_element.source.line_or_addr.u.line_no = 0; element->which_element.source.is_exec_point = FALSE; @@ -490,22 +486,20 @@ init_content_element (struct tui_win_element *element, case DATA_WIN: tui_init_generic_part (&element->which_element.data_window); element->which_element.data_window.type = DATA_ITEM_WIN; - ((struct tui_gen_win_info *) - &element->which_element.data_window)->content = - (void **) tui_alloc_content (1, DATA_ITEM_WIN); - ((struct tui_gen_win_info *) - & element->which_element.data_window)->content_size = 1; + element->which_element.data_window.content = + tui_alloc_content (1, DATA_ITEM_WIN); + element->which_element.data_window.content_size = 1; break; case CMD_WIN: - element->which_element.command.line = (char *) NULL; + element->which_element.command.line = NULL; break; case DATA_ITEM_WIN: - element->which_element.data.name = (char *) NULL; + element->which_element.data.name = NULL; element->which_element.data.type = TUI_REGISTER; element->which_element.data.item_no = UNDEFINED_ITEM; element->which_element.data.value = NULL; element->which_element.data.highlight = FALSE; - element->which_element.data.content = (char*) NULL; + element->which_element.data.content = NULL; break; case LOCATOR_WIN: element->which_element.locator.full_name[0] = @@ -546,15 +540,11 @@ init_win_info (struct tui_win_info *win_info) win_info->detail.data_display_info.data_content_count = 0; win_info->detail.data_display_info.regs_content = (tui_win_content) NULL; win_info->detail.data_display_info.regs_content_count = 0; - win_info->detail.data_display_info.regs_display_type = - TUI_UNDEFINED_REGS; win_info->detail.data_display_info.regs_column_count = 1; win_info->detail.data_display_info.display_regs = FALSE; win_info->detail.data_display_info.current_group = 0; break; case CMD_WIN: - win_info->detail.command_info.cur_line = 0; - win_info->detail.command_info.curch = 0; break; default: win_info->detail.opaque = NULL; @@ -566,9 +556,8 @@ init_win_info (struct tui_win_info *win_info) struct tui_win_info * tui_alloc_win_info (enum tui_win_type type) { - struct tui_win_info *win_info; + struct tui_win_info *win_info = XNEW (struct tui_win_info); - win_info = XNEW (struct tui_win_info); if (win_info != NULL) { win_info->generic.type = type; @@ -584,36 +573,25 @@ tui_win_content tui_alloc_content (int num_elements, enum tui_win_type type) { tui_win_content content; - char *element_block_ptr; + struct tui_win_element *element_block_ptr; int i; - content = xmalloc (sizeof (struct tui_win_element *) *num_elements); - if (content != NULL) + content = XNEWVEC (struct tui_win_element *, num_elements); + + /* + * All windows, except the data window, can allocate the + * elements in a chunk. The data window cannot because items + * can be added/removed from the data display by the user at any + * time. + */ + if (type != DATA_WIN) { - /* - * All windows, except the data window, can allocate the - * elements in a chunk. The data window cannot because items - * can be added/removed from the data display by the user at any - * time. - */ - if (type != DATA_WIN) + element_block_ptr = XNEWVEC (struct tui_win_element, num_elements); + for (i = 0; i < num_elements; i++) { - element_block_ptr = - xmalloc (sizeof (struct tui_win_element) * num_elements); - if (element_block_ptr != NULL) - { - for (i = 0; i < num_elements; i++) - { - content[i] = (struct tui_win_element *) element_block_ptr; - init_content_element (content[i], type); - element_block_ptr += sizeof (struct tui_win_element); - } - } - else - { - xfree (content); - content = (tui_win_content) NULL; - } + content[i] = element_block_ptr; + init_content_element (content[i], type); + element_block_ptr++; } } @@ -635,8 +613,7 @@ tui_add_content_elements (struct tui_gen_win_info *win_info, if (win_info->content == NULL) { - win_info->content = (void **) tui_alloc_content (num_elements, - win_info->type); + win_info->content = tui_alloc_content (num_elements, win_info->type); index_start = 0; } else @@ -645,9 +622,10 @@ tui_add_content_elements (struct tui_gen_win_info *win_info, { for (i = index_start; (i < num_elements + index_start); i++) { - if ((element_ptr = XNEW (struct tui_win_element)) != NULL) + element_ptr = XNEW (struct tui_win_element); + if (element_ptr != NULL) { - win_info->content[i] = (void *) element_ptr; + win_info->content[i] = element_ptr; init_content_element (element_ptr, win_info->type); win_info->content_size++; } @@ -676,7 +654,7 @@ tui_del_window (struct tui_win_info *win_info) if (generic_win != (struct tui_gen_win_info *) NULL) { tui_delete_win (generic_win->handle); - generic_win->handle = (WINDOW *) NULL; + generic_win->handle = NULL; generic_win->is_visible = FALSE; } if (win_info->detail.source_info.fullname) @@ -688,7 +666,7 @@ tui_del_window (struct tui_win_info *win_info) if (generic_win != (struct tui_gen_win_info *) NULL) { tui_delete_win (generic_win->handle); - generic_win->handle = (WINDOW *) NULL; + generic_win->handle = NULL; generic_win->is_visible = FALSE; } break; @@ -707,7 +685,7 @@ tui_del_window (struct tui_win_info *win_info) if (win_info->generic.handle != (WINDOW *) NULL) { tui_delete_win (win_info->generic.handle); - win_info->generic.handle = (WINDOW *) NULL; + win_info->generic.handle = NULL; win_info->generic.is_visible = FALSE; } } @@ -722,13 +700,6 @@ tui_free_window (struct tui_win_info *win_info) { case SRC_WIN: case DISASSEM_WIN: - generic_win = tui_locator_win_info_ptr (); - if (generic_win != (struct tui_gen_win_info *) NULL) - { - tui_delete_win (generic_win->handle); - generic_win->handle = (WINDOW *) NULL; - } - tui_free_win_content (generic_win); if (win_info->detail.source_info.fullname) { xfree (win_info->detail.source_info.fullname); @@ -738,7 +709,7 @@ tui_free_window (struct tui_win_info *win_info) if (generic_win != (struct tui_gen_win_info *) NULL) { tui_delete_win (generic_win->handle); - generic_win->handle = (WINDOW *) NULL; + generic_win->handle = NULL; tui_free_win_content (generic_win); } break; @@ -755,8 +726,6 @@ tui_free_window (struct tui_win_info *win_info) win_info->detail.data_display_info.data_content = (tui_win_content) NULL; win_info->detail.data_display_info.data_content_count = 0; - win_info->detail.data_display_info.regs_display_type = - TUI_UNDEFINED_REGS; win_info->detail.data_display_info.regs_column_count = 1; win_info->detail.data_display_info.display_regs = FALSE; win_info->generic.content = NULL; @@ -769,7 +738,7 @@ tui_free_window (struct tui_win_info *win_info) if (win_info->generic.handle != (WINDOW *) NULL) { tui_delete_win (win_info->generic.handle); - win_info->generic.handle = (WINDOW *) NULL; + win_info->generic.handle = NULL; tui_free_win_content (&win_info->generic); } if (win_info->generic.title) @@ -827,7 +796,7 @@ tui_del_data_windows (tui_win_content content, if (generic_win != (struct tui_gen_win_info *) NULL) { tui_delete_win (generic_win->handle); - generic_win->handle = (WINDOW *) NULL; + generic_win->handle = NULL; generic_win->is_visible = FALSE; } } @@ -851,7 +820,7 @@ tui_free_data_content (tui_win_content content, if (generic_win != (struct tui_gen_win_info *) NULL) { tui_delete_win (generic_win->handle); - generic_win->handle = (WINDOW *) NULL; + generic_win->handle = NULL; tui_free_win_content (generic_win); } }