From 7acd011bef4e461e9caef644f20379f41ddfd631 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Mon, 26 Oct 2015 12:58:32 -0400 Subject: [PATCH] tui: Simplify tui_alloc_content I stumbled upon this while doing some cxx-conversion work. Since the x-family alloc functions throw on failure, it is useless to test their result for failure. The else branch of != NULL is basically dead code. I changed the type of element_block_ptr to struct tui_win_element, which seems obvious (this is actually what raised the flag, casting the result of xmalloc to struct tui_win_element* wouldn't work). gdb/ChangeLog: * tui/tui-data.c (tui_alloc_content): Don't check xmalloc result. Change type of element_block_ptr. Change allocation to use XNEWVEC. --- gdb/ChangeLog | 6 ++++++ gdb/tui/tui-data.c | 39 ++++++++++++++------------------------- 2 files changed, 20 insertions(+), 25 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f653a3d72d..5042001d52 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2015-10-26 Simon Marchi + + * tui/tui-data.c (tui_alloc_content): Don't check xmalloc + result. Change type of element_block_ptr. Change allocation to + use XNEWVEC. + 2015-10-26 Luis Machado * record-full.c (record_full_message_wrapper_safe): Pass empty string to diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c index 4966c5b2d1..a729978ef7 100644 --- a/gdb/tui/tui-data.c +++ b/gdb/tui/tui-data.c @@ -573,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 = XNEWVEC (struct tui_win_element *, num_elements); - if (content != NULL) + + /* + * 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++; } }