From f8fdb78eafb3f70661f6e4a43beb004dde9e0921 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Fri, 28 Apr 2017 17:16:18 -0400 Subject: [PATCH] Class-ify lm_info_windows This patch makes lm_info_windows a "real" class. It initializes the field and replaces XCNEW/xfree with new/delete. gdb/ChangeLog: * windows-nat.c (struct lm_info_windows): Initialize field. (windows_make_so): Allocate lm_info_windows with new. (windows_free_so): Free lm_info_windows with delete. --- gdb/ChangeLog | 6 ++++++ gdb/windows-nat.c | 9 +++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 49f8f0db5b..24768c4938 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2017-04-28 Simon Marchi + + * windows-nat.c (struct lm_info_windows): Initialize field. + (windows_make_so): Allocate lm_info_windows with new. + (windows_free_so): Free lm_info_windows with delete. + 2017-04-28 Simon Marchi * solib-darwin.c (struct lm_info_darwin): Initialize field. diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c index ef1c2914f1..6a5a295ad1 100644 --- a/gdb/windows-nat.c +++ b/gdb/windows-nat.c @@ -587,7 +587,7 @@ struct safe_symbol_file_add_args /* Maintain a linked list of "so" information. */ struct lm_info_windows : public lm_info_base { - LPVOID load_addr; + LPVOID load_addr = 0; }; static struct so_list solib_start, *solib_end; @@ -645,7 +645,7 @@ windows_make_so (const char *name, LPVOID load_addr) } #endif so = XCNEW (struct so_list); - lm_info_windows *li = XCNEW (struct lm_info_windows); + lm_info_windows *li = new lm_info_windows; so->lm_info = li; li->load_addr = load_addr; strcpy (so->so_original_name, name); @@ -784,8 +784,9 @@ handle_load_dll (void *dummy) static void windows_free_so (struct so_list *so) { - if (so->lm_info) - xfree (so->lm_info); + lm_info_windows *li = (lm_info_windows *) so->lm_info; + + delete li; xfree (so); } -- 2.34.1