[8/9] Change solib-spu.c to use type-safe registry

Message ID 20190710153947.25721-9-tromey@adacore.com
State New
Headers show
Series
  • Use the type-safe registry in more cases
Related show

Commit Message

Tom Tromey July 10, 2019, 3:39 p.m.
This changes solib-spu.c to use the type-safe registry.

gdb/ChangeLog
2019-07-10  Tom Tromey  <tromey@adacore.com>

	* solib-spu.c (ocl_program_data_key): Change type.
	(append_ocl_sos, ocl_enable_break, _initialize_spu_solib):
	Update.
---
 gdb/ChangeLog   |  6 ++++++
 gdb/solib-spu.c | 12 +++++-------
 2 files changed, 11 insertions(+), 7 deletions(-)

-- 
2.20.1

Patch

diff --git a/gdb/solib-spu.c b/gdb/solib-spu.c
index c5dc8639f1e..448e1a64f4c 100644
--- a/gdb/solib-spu.c
+++ b/gdb/solib-spu.c
@@ -94,7 +94,8 @@  spu_skip_standalone_loader (void)
     }
 }
 
-static const struct objfile_data *ocl_program_data_key;
+static objfile_key<CORE_ADDR, gdb::noop_deleter<CORE_ADDR>>
+  ocl_program_data_key;
 
 /* Appends OpenCL programs to the list of `struct so_list' objects.  */
 static void
@@ -104,8 +105,7 @@  append_ocl_sos (struct so_list **link_ptr)
 
   for (objfile *objfile : current_program_space->objfiles ())
     {
-      ocl_program_addr_base
-	= (CORE_ADDR *) objfile_data (objfile, ocl_program_data_key);
+      ocl_program_addr_base = ocl_program_data_key.get (objfile);
       if (ocl_program_addr_base != NULL)
         {
 	  enum bfd_endian byte_order = bfd_big_endian (objfile->obfd)?
@@ -448,15 +448,14 @@  ocl_enable_break (struct objfile *objfile)
 
       /* Store the address of the symbol that will point to OpenCL program
          using the per-objfile private data mechanism.  */
-      if (objfile_data (objfile, ocl_program_data_key) == NULL)
+      if (ocl_program_data_key.get (objfile) == NULL)
         {
           CORE_ADDR *ocl_program_addr_base = OBSTACK_CALLOC (
 		  &objfile->objfile_obstack,
 		  objfile->sections_end - objfile->sections,
 		  CORE_ADDR);
 	  *ocl_program_addr_base = BMSYMBOL_VALUE_ADDRESS (addr_sym);
-	  set_objfile_data (objfile, ocl_program_data_key,
-			    ocl_program_addr_base);
+	  ocl_program_data_key.set (objfile, ocl_program_addr_base);
         }
     }
 }
@@ -544,6 +543,5 @@  void
 _initialize_spu_solib (void)
 {
   gdb::observers::solib_loaded.attach (spu_solib_loaded);
-  ocl_program_data_key = register_objfile_data ();
 }