This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] tui: Simplify tui_alloc_content


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7acd011bef4e461e9caef644f20379f41ddfd631

commit 7acd011bef4e461e9caef644f20379f41ddfd631
Author: Simon Marchi <simon.marchi@ericsson.com>
Date:   Mon Oct 26 12:58:32 2015 -0400

    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.

Diff:
---
 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 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++;
 	}
     }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]