diff options
-rw-r--r-- | gdb/ChangeLog | 2 | ||||
-rw-r--r-- | gdb/tui/tui-winsource.c | 41 |
2 files changed, 20 insertions, 23 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2457971..b4f5386 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,7 @@ 2007-08-13 Michael Snyder <msnyder@access-company.com> + * tui/tui-winsource.c (tui_alloc_source_buffer): Clean up allocation. + * event-top.c (command_line_handler): Memory leak. * mi/mi-cmd-var.c (mi_cmd_var_set_format): Memory leak. diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c index 4431001..2aed4c3 100644 --- a/gdb/tui/tui-winsource.c +++ b/gdb/tui/tui-winsource.c @@ -569,45 +569,40 @@ tui_alloc_source_buffer (struct tui_win_info *win_info) { char *src_line_buf; int i, line_width, max_lines; - enum tui_status ret = TUI_FAILURE; max_lines = win_info->generic.height; /* less the highlight box */ line_width = win_info->generic.width - 1; /* - ** Allocate the buffer for the source lines. Do this only once since they - ** will be re-used for all source displays. The only other time this will - ** be done is when a window's size changes. + * Allocate the buffer for the source lines. Do this only once + * since they will be re-used for all source displays. The only + * other time this will be done is when a window's size changes. */ if (win_info->generic.content == NULL) { - src_line_buf = (char *) xmalloc ((max_lines * line_width) * sizeof (char)); + src_line_buf = (char *) + xmalloc ((max_lines * line_width) * sizeof (char)); if (src_line_buf == (char *) NULL) - fputs_unfiltered ( - "Unable to Allocate Memory for Source or Disassembly Display.\n", - gdb_stderr); - else { - /* allocate the content list */ - if ((win_info->generic.content = - (void **) tui_alloc_content (max_lines, SRC_WIN)) == NULL) - { - xfree (src_line_buf); - src_line_buf = (char *) NULL; - fputs_unfiltered ( - "Unable to Allocate Memory for Source or Disassembly Display.\n", - gdb_stderr); - } + fputs_unfiltered ("Unable to Allocate Memory for Source or Disassembly Display.\n", + gdb_stderr); + return TUI_FAILURE; + } + /* allocate the content list */ + if ((win_info->generic.content = + (void **) tui_alloc_content (max_lines, SRC_WIN)) == NULL) + { + xfree (src_line_buf); + fputs_unfiltered ("Unable to Allocate Memory for Source or Disassembly Display.\n", + gdb_stderr); + return TUI_FAILURE; } for (i = 0; i < max_lines; i++) ((struct tui_win_element *) win_info->generic.content[i])->which_element.source.line = src_line_buf + (line_width * i); - ret = TUI_SUCCESS; } - else - ret = TUI_SUCCESS; - return ret; + return TUI_SUCCESS; } |