Change solib-spu.c to use type-safe registry
authorTom Tromey <tromey@adacore.com>
Thu, 27 Jun 2019 19:52:42 +0000 (13:52 -0600)
committerTom Tromey <tromey@adacore.com>
Wed, 10 Jul 2019 20:34:11 +0000 (14:34 -0600)
This changes solib-spu.c to use the type-safe registry.

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
gdb/solib-spu.c

index fb01bd6b2d7067ec1ca0ad0008c41daf90ddd828..303fe15e90de5dc9ab11f603e6a7cd4f6919299f 100644 (file)
@@ -1,3 +1,9 @@
+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.
+
 2019-07-10  Tom Tromey  <tromey@adacore.com>
 
        * solib-aix.c (lm_info_aix_p): Remove typedef.  Don't define VEC.
index c5dc8639f1e286afab8edc0fbe93f39e3e36f998..448e1a64f4cb99536930b5b65db46104b6a13af1 100644 (file)
@@ -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 ();
 }