Convert breakpoint.c to type-safe registry API
authorTom Tromey <tom@tromey.com>
Sun, 21 Apr 2019 18:45:00 +0000 (12:45 -0600)
committerTom Tromey <tom@tromey.com>
Wed, 8 May 2019 22:01:49 +0000 (16:01 -0600)
This changes breakpoint.c to use the type-safe registry API.

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

* breakpoint.c (breakpoint_objfile_key): Change type.
(get_breakpoint_objfile_data): Update.
(free_breakpoint_objfile_data): Remove.
(_initialize_breakpoint): Update.

gdb/ChangeLog
gdb/breakpoint.c

index 708b73605f33fe01943af86a30660884876a944b..05a06ece80d63bb02543c0ac43912392bd6485d8 100644 (file)
@@ -1,3 +1,10 @@
+2019-05-08  Tom Tromey  <tom@tromey.com>
+
+       * breakpoint.c (breakpoint_objfile_key): Change type.
+       (get_breakpoint_objfile_data): Update.
+       (free_breakpoint_objfile_data): Remove.
+       (_initialize_breakpoint): Update.
+
 2019-05-08  Tom Tromey  <tom@tromey.com>
 
        * linux-tdep.c (struct linux_info): Add initializers.
index f6d2f36d0a4020d81eb9b4e6ec350f796ebedb9d..35da97bd041b93dab4b52e589281d65e6e43b71d 100644 (file)
@@ -3156,7 +3156,8 @@ struct breakpoint_objfile_data
   std::vector<probe *> exception_probes;
 };
 
-static const struct objfile_data *breakpoint_objfile_key;
+static const struct objfile_key<breakpoint_objfile_data>
+  breakpoint_objfile_key;
 
 /* Minimal symbol not found sentinel.  */
 static struct minimal_symbol msym_not_found;
@@ -3177,25 +3178,12 @@ get_breakpoint_objfile_data (struct objfile *objfile)
 {
   struct breakpoint_objfile_data *bp_objfile_data;
 
-  bp_objfile_data = ((struct breakpoint_objfile_data *)
-                    objfile_data (objfile, breakpoint_objfile_key));
+  bp_objfile_data = breakpoint_objfile_key.get (objfile);
   if (bp_objfile_data == NULL)
-    {
-      bp_objfile_data = new breakpoint_objfile_data ();
-      set_objfile_data (objfile, breakpoint_objfile_key, bp_objfile_data);
-    }
+    bp_objfile_data = breakpoint_objfile_key.emplace (objfile);
   return bp_objfile_data;
 }
 
-static void
-free_breakpoint_objfile_data (struct objfile *obj, void *data)
-{
-  struct breakpoint_objfile_data *bp_objfile_data
-    = (struct breakpoint_objfile_data *) data;
-
-  delete bp_objfile_data;
-}
-
 static void
 create_overlay_event_breakpoint (void)
 {
@@ -15448,9 +15436,6 @@ _initialize_breakpoint (void)
   gdb::observers::free_objfile.attach (disable_breakpoints_in_freed_objfile);
   gdb::observers::memory_changed.attach (invalidate_bp_value_on_memory_change);
 
-  breakpoint_objfile_key
-    = register_objfile_data_with_cleanup (NULL, free_breakpoint_objfile_data);
-
   breakpoint_chain = 0;
   /* Don't bother to call set_breakpoint_count.  $bpnum isn't useful
      before a breakpoint is set.  */