diff options
author | Simon Marchi <simon.marchi@ericsson.com> | 2015-10-26 12:58:32 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@ericsson.com> | 2015-10-26 12:58:32 -0400 |
commit | 7acd011bef4e461e9caef644f20379f41ddfd631 (patch) | |
tree | 881bf5a1e3c84a7116fc625aaa9f812d57441095 | |
parent | a6af384b19c63bab4a1803c09592c5b5bd8674c2 (diff) | |
download | gdb-7acd011bef4e461e9caef644f20379f41ddfd631.zip gdb-7acd011bef4e461e9caef644f20379f41ddfd631.tar.gz gdb-7acd011bef4e461e9caef644f20379f41ddfd631.tar.bz2 |
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.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/tui/tui-data.c | 39 |
2 files changed, 20 insertions, 25 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f653a3d..5042001 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2015-10-26 Simon Marchi <simon.marchi@ericsson.com> + + * 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 <lgustavo@codesourcery.com> * 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 4966c5b..a729978 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++; } } |