[1/2] Replace xmalloc/xfree with vector in jit.c

Message ID 20191211063732.1043487-1-simon.marchi@polymtl.ca
State New, archived
Headers

Commit Message

Simon Marchi Dec. 11, 2019, 6:37 a.m. UTC
  I'm currently studying that code and noticed this manual memory
management, which could easily be replaced with a vector, so here it is.

gdb/ChangeLog:

	* jit.c (jit_reader_try_read_symtab): Replace xmalloc/xfree with
	gdb::byte_vector.
---
 gdb/jit.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)
  

Comments

Tom Tromey Dec. 12, 2019, 7 p.m. UTC | #1
>>>>> "Simon" == Simon Marchi <simon.marchi@polymtl.ca> writes:

Simon> I'm currently studying that code and noticed this manual memory
Simon> management, which could easily be replaced with a vector, so here it is.

Simon> gdb/ChangeLog:

Simon> 	* jit.c (jit_reader_try_read_symtab): Replace xmalloc/xfree with
Simon> 	gdb::byte_vector.

Thanks, this looks good to me.

Tom
  
Simon Marchi Dec. 12, 2019, 7:55 p.m. UTC | #2
On 2019-12-12 2:00 p.m., Tom Tromey wrote:
>>>>>> "Simon" == Simon Marchi <simon.marchi@polymtl.ca> writes:
> 
> Simon> I'm currently studying that code and noticed this manual memory
> Simon> management, which could easily be replaced with a vector, so here it is.
> 
> Simon> gdb/ChangeLog:
> 
> Simon> 	* jit.c (jit_reader_try_read_symtab): Replace xmalloc/xfree with
> Simon> 	gdb::byte_vector.
> 
> Thanks, this looks good to me.

Thanks, I pushed this patch alone.

Simon
  

Patch

diff --git a/gdb/jit.c b/gdb/jit.c
index 480b4596ac54..b6e51e4f8b4d 100644
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -808,7 +808,6 @@  static int
 jit_reader_try_read_symtab (struct jit_code_entry *code_entry,
                             CORE_ADDR entry_addr)
 {
-  gdb_byte *gdb_mem;
   int status;
   jit_dbg_reader_data priv_data;
   struct gdb_reader_funcs *funcs;
@@ -831,12 +830,12 @@  jit_reader_try_read_symtab (struct jit_code_entry *code_entry,
   if (!loaded_jit_reader)
     return 0;
 
-  gdb_mem = (gdb_byte *) xmalloc (code_entry->symfile_size);
+  gdb::byte_vector gdb_mem (code_entry->symfile_size);
 
   status = 1;
   try
     {
-      if (target_read_memory (code_entry->symfile_addr, gdb_mem,
+      if (target_read_memory (code_entry->symfile_addr, gdb_mem.data (),
 			      code_entry->symfile_size))
 	status = 0;
     }
@@ -848,12 +847,12 @@  jit_reader_try_read_symtab (struct jit_code_entry *code_entry,
   if (status)
     {
       funcs = loaded_jit_reader->functions;
-      if (funcs->read (funcs, &callbacks, gdb_mem, code_entry->symfile_size)
+      if (funcs->read (funcs, &callbacks, gdb_mem.data (),
+		       code_entry->symfile_size)
           != GDB_SUCCESS)
         status = 0;
     }
 
-  xfree (gdb_mem);
   if (jit_debug && status == 0)
     fprintf_unfiltered (gdb_stdlog,
                         "Could not read symtab using the loaded JIT reader.\n");