From 51d3063a35fad1fa0cd53c167bb5a4325afeea16 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 21 Apr 2019 12:45:00 -0600 Subject: [PATCH] Convert breakpoint.c to type-safe registry API This changes breakpoint.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * breakpoint.c (breakpoint_objfile_key): Change type. (get_breakpoint_objfile_data): Update. (free_breakpoint_objfile_data): Remove. (_initialize_breakpoint): Update. --- gdb/ChangeLog | 7 +++++++ gdb/breakpoint.c | 23 ++++------------------- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 708b73605f..05a06ece80 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2019-05-08 Tom Tromey + + * 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 * linux-tdep.c (struct linux_info): Add initializers. diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index f6d2f36d0a..35da97bd04 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -3156,7 +3156,8 @@ struct breakpoint_objfile_data std::vector exception_probes; }; -static const struct objfile_data *breakpoint_objfile_key; +static const struct objfile_key + 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. */ -- 2.34.1