[10/10] Class-ify lm_info_windows

Message ID 20170426225139.313-10-simon.marchi@ericsson.com
State New, archived
Headers

Commit Message

Simon Marchi April 26, 2017, 10:51 p.m. UTC
  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/windows-nat.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
  

Comments

Pedro Alves April 28, 2017, 4 p.m. UTC | #1
On 04/26/2017 11:51 PM, Simon Marchi wrote:
> This patch makes lm_info_windows a "real" class.  It initializes the field
> and replaces XCNEW/xfree with new/delete.

LGTM.

Thanks,
Pedro Alves
  

Patch

diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index ef1c2914f1..c54c9ee5d5 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,11 @@  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;
+
+  if (li != NULL)
+    delete li;
+
   xfree (so);
 }