From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 113697 invoked by alias); 25 Jun 2019 13:57:51 -0000 Mailing-List: contact gdb-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: , Sender: gdb-cvs-owner@sourceware.org List-Subscribe: Sender: gdb-cvs-owner@sourceware.org Received: (qmail 113662 invoked by uid 306); 25 Jun 2019 13:57:51 -0000 Date: Tue, 25 Jun 2019 13:57:00 -0000 Message-ID: <20190625135751.113660.qmail@sourceware.org> Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Tom Tromey To: gdb-cvs@sourceware.org Subject: [binutils-gdb] Split the tui_win_info destructor X-Act-Checkin: binutils-gdb X-Git-Author: Tom Tromey X-Git-Refname: refs/heads/master X-Git-Oldrev: b4eb24524b5838141bd3c3998afc81f65302eca1 X-Git-Newrev: ee1d42d6c1a05725868a8ea4855eaa81cbbda635 X-SW-Source: 2019-06/txt/msg00145.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ee1d42d6c1a05725868a8ea4855eaa81cbbda635 commit ee1d42d6c1a05725868a8ea4855eaa81cbbda635 Author: Tom Tromey Date: Sun Jun 16 10:52:27 2019 -0600 Split the tui_win_info destructor This patch adds destructors to tui_source_window and tui_data_window, and splits ~tui_win_info as appropriate. gdb/ChangeLog 2019-06-25 Tom Tromey * tui/tui-data.h (struct tui_source_window) (struct tui_data_window): Declare destructors. * tui/tui-data.c (~tui_source_window, ~tui_data_window): New destructors. (tui_win_info): Simplify. Diff: --- gdb/ChangeLog | 8 +++++++ gdb/tui/tui-data.c | 70 +++++++++++++++++++++++++----------------------------- gdb/tui/tui-data.h | 2 ++ 3 files changed, 43 insertions(+), 37 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 412c442..434d7dd 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,13 @@ 2019-06-25 Tom Tromey + * tui/tui-data.h (struct tui_source_window) + (struct tui_data_window): Declare destructors. + * tui/tui-data.c (~tui_source_window, ~tui_data_window): New + destructors. + (tui_win_info): Simplify. + +2019-06-25 Tom Tromey + * tui/tui-winsource.c (tui_display_main) (tui_update_source_windows_with_addr) (tui_update_all_breakpoint_info): Update. diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c index d9b8bd6..d24941c 100644 --- a/gdb/tui/tui-data.c +++ b/gdb/tui/tui-data.c @@ -617,47 +617,43 @@ tui_add_content_elements (struct tui_gen_win_info *win_info, return index_start; } -tui_win_info::~tui_win_info () +tui_source_window::~tui_source_window () { - struct tui_gen_win_info *generic_win; + if (detail.source_info.fullname) + { + xfree (detail.source_info.fullname); + detail.source_info.fullname = NULL; + } + struct tui_gen_win_info *generic_win = detail.source_info.execution_info; + if (generic_win != NULL) + { + tui_delete_win (generic_win->handle); + generic_win->handle = NULL; + tui_free_win_content (generic_win); + } +} - switch (generic.type) +tui_data_window::~tui_data_window () +{ + if (generic.content != NULL) { - case SRC_WIN: - case DISASSEM_WIN: - if (detail.source_info.fullname) - { - xfree (detail.source_info.fullname); - detail.source_info.fullname = NULL; - } - generic_win = detail.source_info.execution_info; - if (generic_win != NULL) - { - tui_delete_win (generic_win->handle); - generic_win->handle = NULL; - tui_free_win_content (generic_win); - } - break; - case DATA_WIN: - if (generic.content != NULL) - { - tui_free_data_content (detail.data_display_info.regs_content, - detail.data_display_info.regs_content_count); - detail.data_display_info.regs_content = NULL; - detail.data_display_info.regs_content_count = 0; - tui_free_data_content (detail.data_display_info.data_content, - detail.data_display_info.data_content_count); - detail.data_display_info.data_content = NULL; - detail.data_display_info.data_content_count = 0; - detail.data_display_info.regs_column_count = 1; - detail.data_display_info.display_regs = FALSE; - generic.content = NULL; - generic.content_size = 0; - } - break; - default: - break; + tui_free_data_content (detail.data_display_info.regs_content, + detail.data_display_info.regs_content_count); + detail.data_display_info.regs_content = NULL; + detail.data_display_info.regs_content_count = 0; + tui_free_data_content (detail.data_display_info.data_content, + detail.data_display_info.data_content_count); + detail.data_display_info.data_content = NULL; + detail.data_display_info.data_content_count = 0; + detail.data_display_info.regs_column_count = 1; + detail.data_display_info.display_regs = FALSE; + generic.content = NULL; + generic.content_size = 0; } +} + +tui_win_info::~tui_win_info () +{ if (generic.handle != NULL) { tui_delete_win (generic.handle); diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h index 8008893..7adeb56 100644 --- a/gdb/tui/tui-data.h +++ b/gdb/tui/tui-data.h @@ -294,6 +294,7 @@ public: struct tui_source_window : public tui_win_info { explicit tui_source_window (enum tui_win_type type); + ~tui_source_window () override; DISABLE_COPY_AND_ASSIGN (tui_source_window); void clear_detail () override; @@ -302,6 +303,7 @@ struct tui_source_window : public tui_win_info struct tui_data_window : public tui_win_info { tui_data_window (); + ~tui_data_window () override; DISABLE_COPY_AND_ASSIGN (tui_data_window); void clear_detail () override;