Change spu-tdep.c to use type-safe registry
authorTom Tromey <tromey@adacore.com>
Wed, 26 Jun 2019 19:14:29 +0000 (13:14 -0600)
committerTom Tromey <tromey@adacore.com>
Wed, 10 Jul 2019 18:43:38 +0000 (12:43 -0600)
This changes spu-tdep.c to use the type-safe registry.

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

* spu-tdep.c (spu_overlay_data): Change type.
(spu_get_overlay_table, spu_overlay_new_objfile)
(_initialize_spu_tdep): Update.

gdb/ChangeLog
gdb/spu-tdep.c

index e4ac3c7655199868b12c6960a10b2abd0a9adc85..1c759655561b0beca3d08d2bb89d4575e50c148a 100644 (file)
@@ -1,3 +1,9 @@
+2019-07-10  Tom Tromey  <tromey@adacore.com>
+
+       * spu-tdep.c (spu_overlay_data): Change type.
+       (spu_get_overlay_table, spu_overlay_new_objfile)
+       (_initialize_spu_tdep): Update.
+
 2019-07-10  Tom Tromey  <tromey@adacore.com>
 
        * gdb-stabs.h (struct dbx_symfile_info): Add initializers and
index a2ac3149d4d616162b2d42bb02d5fe3103f5849d..69ffb69fcb98fe05e4a1c0da3ddbacb327a667a9 100644 (file)
@@ -1767,14 +1767,15 @@ gdb_print_insn_spu (bfd_vma memaddr, struct disassemble_info *info)
    a target address.  The overlay section is mapped iff the target
    integer at this location equals MAPPED_VAL.  */
 
-static const struct objfile_data *spu_overlay_data;
-
 struct spu_overlay_table
   {
     CORE_ADDR mapped_ptr;
     CORE_ADDR mapped_val;
   };
 
+static objfile_key<spu_overlay_table,
+                  gdb::noop_deleter<spu_overlay_table>> spu_overlay_data;
+
 /* Retrieve the overlay table for OBJFILE.  If not already cached, read
    the _ovly_table data structure from the target and initialize the
    spu_overlay_table data structure from it.  */
@@ -1791,7 +1792,7 @@ spu_get_overlay_table (struct objfile *objfile)
   gdb_byte *ovly_table;
   int i;
 
-  tbl = (struct spu_overlay_table *) objfile_data (objfile, spu_overlay_data);
+  tbl = spu_overlay_data.get (objfile);
   if (tbl)
     return tbl;
 
@@ -1843,7 +1844,7 @@ spu_get_overlay_table (struct objfile *objfile)
     }
 
   xfree (ovly_table);
-  set_objfile_data (objfile, spu_overlay_data, tbl);
+  spu_overlay_data.set (objfile, tbl);
   return tbl;
 }
 
@@ -1901,7 +1902,7 @@ spu_overlay_new_objfile (struct objfile *objfile)
   struct obj_section *osect;
 
   /* If we've already touched this file, do nothing.  */
-  if (!objfile || objfile_data (objfile, spu_overlay_data) != NULL)
+  if (!objfile || spu_overlay_data.get (objfile) != NULL)
     return;
 
   /* Consider only SPU objfiles.  */
@@ -2765,7 +2766,6 @@ _initialize_spu_tdep (void)
 
   /* Add ourselves to objfile event chain.  */
   gdb::observers::new_objfile.attach (spu_overlay_new_objfile);
-  spu_overlay_data = register_objfile_data ();
 
   /* Install spu stop-on-load handler.  */
   gdb::observers::new_objfile.attach (spu_catch_start);