Convert gdbtypes.c to type-safe registry API
authorTom Tromey <tom@tromey.com>
Thu, 2 May 2019 22:13:50 +0000 (16:13 -0600)
committerTom Tromey <tom@tromey.com>
Wed, 8 May 2019 22:01:56 +0000 (16:01 -0600)
This changes gdbtypes.c to use the type-safe registry API.

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

* gdbtypes.c (objfile_type_data): Change type.
(objfile_type, _initialize_gdbtypes): Update.

gdb/ChangeLog
gdb/gdbtypes.c

index 11a973d..5b0a9fd 100644 (file)
@@ -1,5 +1,10 @@
 2019-05-08  Tom Tromey  <tom@tromey.com>
 
+       * gdbtypes.c (objfile_type_data): Change type.
+       (objfile_type, _initialize_gdbtypes): Update.
+
+2019-05-08  Tom Tromey  <tom@tromey.com>
+
        * dwarf2-frame.c (dwarf2_frame_objfile_data): Change type.
        (dwarf2_frame_find_fde, dwarf2_build_frame_info)
        (_initialize_dwarf2_frame): Update.
index b3424d8..59456f9 100644 (file)
@@ -5458,14 +5458,15 @@ gdbtypes_post_init (struct gdbarch *gdbarch)
 /* This set of objfile-based types is intended to be used by symbol
    readers as basic types.  */
 
-static const struct objfile_data *objfile_type_data;
+static const struct objfile_key<struct objfile_type,
+                               gdb::noop_deleter<struct objfile_type>>
+  objfile_type_data;
 
 const struct objfile_type *
 objfile_type (struct objfile *objfile)
 {
   struct gdbarch *gdbarch;
-  struct objfile_type *objfile_type
-    = (struct objfile_type *) objfile_data (objfile, objfile_type_data);
+  struct objfile_type *objfile_type = objfile_type_data.get (objfile);
 
   if (objfile_type)
     return objfile_type;
@@ -5570,7 +5571,7 @@ objfile_type (struct objfile *objfile)
     = init_integer_type (objfile, gdbarch_addr_bit (gdbarch), 1,
                         "__CORE_ADDR");
 
-  set_objfile_data (objfile, objfile_type_data, objfile_type);
+  objfile_type_data.set (objfile, objfile_type);
   return objfile_type;
 }
 
@@ -5578,7 +5579,6 @@ void
 _initialize_gdbtypes (void)
 {
   gdbtypes_data = gdbarch_data_register_post_init (gdbtypes_post_init);
-  objfile_type_data = register_objfile_data ();
 
   add_setshow_zuinteger_cmd ("overload", no_class, &overload_debug,
                             _("Set debugging of C++ overloading."),