tui: Simplify tui_alloc_content
authorSimon Marchi <simon.marchi@ericsson.com>
Mon, 26 Oct 2015 16:58:32 +0000 (12:58 -0400)
committerSimon Marchi <simon.marchi@ericsson.com>
Mon, 26 Oct 2015 16:58:32 +0000 (12:58 -0400)
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
gdb/tui/tui-data.c

index f653a3d72dfdb832caff94a6645d11b690f7515c..5042001d522fa51d5a70a1f528e9ea85e687175d 100644 (file)
@@ -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
index 4966c5b2d157cc1c0ce012e26fd9a118caff5162..a729978ef77646362b380bfc1860dae5d72f113e 100644 (file)
@@ -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++;
        }
     }