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

gdb/ChangeLog
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.

gdb/ChangeLog
gdb/dwarf2-frame.c

index 08489a8558b48ce8c4216975c591be57c19aad02..11a973d7ad04dae8067a789c34d8f3bb9d9522c9 100644 (file)
@@ -1,3 +1,9 @@
+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.
+
 2019-05-08  Tom Tromey  <tom@tromey.com>
 
        * objc-lang.c (objc_objfile_data): Change type.
index b697afa5a13b79fc4e736dee689134c7bee276a1..0f2502b4c6830ecbbbaee0add10d69ace21b285c 100644 (file)
@@ -1463,7 +1463,9 @@ dwarf2_frame_cfa (struct frame_info *this_frame)
   return get_frame_base (this_frame);
 }
 \f
-const struct objfile_data *dwarf2_frame_objfile_data;
+const struct objfile_key<dwarf2_fde_table,
+                        gdb::noop_deleter<dwarf2_fde_table>>
+  dwarf2_frame_objfile_data;
 
 static unsigned int
 read_1_byte (bfd *abfd, const gdb_byte *buf)
@@ -1708,13 +1710,11 @@ dwarf2_frame_find_fde (CORE_ADDR *pc, CORE_ADDR *out_offset)
       CORE_ADDR offset;
       CORE_ADDR seek_pc;
 
-      fde_table = ((struct dwarf2_fde_table *)
-                  objfile_data (objfile, dwarf2_frame_objfile_data));
+      fde_table = dwarf2_frame_objfile_data.get (objfile);
       if (fde_table == NULL)
        {
          dwarf2_build_frame_info (objfile);
-         fde_table = ((struct dwarf2_fde_table *)
-                      objfile_data (objfile, dwarf2_frame_objfile_data));
+         fde_table = dwarf2_frame_objfile_data.get (objfile);
        }
       gdb_assert (fde_table != NULL);
 
@@ -2397,7 +2397,7 @@ dwarf2_build_frame_info (struct objfile *objfile)
       xfree (fde_table.entries);
     }
 
-  set_objfile_data (objfile, dwarf2_frame_objfile_data, fde_table2);
+  dwarf2_frame_objfile_data.set (objfile, fde_table2);
 }
 
 /* Handle 'maintenance show dwarf unwinders'.  */
@@ -2416,7 +2416,6 @@ void
 _initialize_dwarf2_frame (void)
 {
   dwarf2_frame_data = gdbarch_data_register_pre_init (dwarf2_frame_init);
-  dwarf2_frame_objfile_data = register_objfile_data ();
 
   add_setshow_boolean_cmd ("unwinders", class_obscure,
                           &dwarf2_frame_unwinders_enabled_p , _("\