Convert hppa-tdep.c to type-safe registry API
authorTom Tromey <tom@tromey.com>
Wed, 1 May 2019 21:44:00 +0000 (15:44 -0600)
committerTom Tromey <tom@tromey.com>
Wed, 8 May 2019 22:01:54 +0000 (16:01 -0600)
This changes hppa-tdep.c to use the type-safe registry API.

gdb/ChangeLog
2019-05-08  Tom Tromey  <tom@tromey.com>

* hppa-tdep.c (hppa_objfile_priv_data): Change type.
(hppa_init_objfile_priv_data, read_unwind_info)
(find_unwind_entry, _initialize_hppa_tdep): Update.

gdb/ChangeLog
gdb/hppa-tdep.c

index be3e5db38c49c1bbdf20464268a7a1badf589b53..8194236ddf304481395330213d31074c7fb6949c 100644 (file)
@@ -1,3 +1,9 @@
+2019-05-08  Tom Tromey  <tom@tromey.com>
+
+       * hppa-tdep.c (hppa_objfile_priv_data): Change type.
+       (hppa_init_objfile_priv_data, read_unwind_info)
+       (find_unwind_entry, _initialize_hppa_tdep): Update.
+
 2019-05-08  Tom Tromey  <tom@tromey.com>
 
        * elfread.c (elf_objfile_gnu_ifunc_cache_data): Change type.
index d2b3336cfc7b576fcc07ae74766a3e567b98baad..be30359638c37fab2bd3ac3e9e4389333e43a7ad 100644 (file)
@@ -84,7 +84,9 @@ struct hppa_objfile_private
    that separately and make this static. The solib data is probably hpux-
    specific, so we can create a separate extern objfile_data that is registered
    by hppa-hpux-tdep.c and shared with pa64solib.c and somsolib.c.  */
-static const struct objfile_data *hppa_objfile_priv_data = NULL;
+static const struct objfile_key<hppa_objfile_private,
+                               gdb::noop_deleter<hppa_objfile_private>>
+  hppa_objfile_priv_data;
 
 /* Get at various relevent fields of an instruction word.  */
 #define MASK_5 0x1f
@@ -208,7 +210,7 @@ hppa_init_objfile_priv_data (struct objfile *objfile)
   hppa_objfile_private *priv
     = OBSTACK_ZALLOC (&objfile->objfile_obstack, hppa_objfile_private);
 
-  set_objfile_data (objfile, hppa_objfile_priv_data, priv);
+  hppa_objfile_priv_data.set (objfile, priv);
 
   return priv;
 }
@@ -466,8 +468,7 @@ read_unwind_info (struct objfile *objfile)
         compare_unwind_entries);
 
   /* Keep a pointer to the unwind information.  */
-  obj_private = (struct hppa_objfile_private *) 
-               objfile_data (objfile, hppa_objfile_priv_data);
+  obj_private = hppa_objfile_priv_data.get (objfile);
   if (obj_private == NULL)
     obj_private = hppa_init_objfile_priv_data (objfile);
 
@@ -501,16 +502,14 @@ find_unwind_entry (CORE_ADDR pc)
     {
       struct hppa_unwind_info *ui;
       ui = NULL;
-      priv = ((struct hppa_objfile_private *)
-             objfile_data (objfile, hppa_objfile_priv_data));
+      priv = hppa_objfile_priv_data.get (objfile);
       if (priv)
        ui = ((struct hppa_objfile_private *) priv)->unwind_info;
 
       if (!ui)
        {
          read_unwind_info (objfile);
-         priv = ((struct hppa_objfile_private *)
-                 objfile_data (objfile, hppa_objfile_priv_data));
+         priv = hppa_objfile_priv_data.get (objfile);
          if (priv == NULL)
            error (_("Internal error reading unwind information."));
          ui = ((struct hppa_objfile_private *) priv)->unwind_info;
@@ -3174,8 +3173,6 @@ _initialize_hppa_tdep (void)
 {
   gdbarch_register (bfd_arch_hppa, hppa_gdbarch_init, hppa_dump_tdep);
 
-  hppa_objfile_priv_data = register_objfile_data ();
-
   add_cmd ("unwind", class_maintenance, unwind_command,
           _("Print unwind table entry at given address."),
           &maintenanceprintlist);