From 6ae614f66a0a86c9e83b9f40ee1f4e105b681f7b Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 21 Apr 2019 09:25:07 -0600 Subject: [PATCH] Convert break-catch-syscall.c to type-safe registry API This changes break-catch-syscall.c to use the type-safe registry API. gdb/ChangeLog 2019-05-08 Tom Tromey * break-catch-syscall.c (catch_syscall_inferior_data): Move. Change type. (get_catch_syscall_inferior_data): Update. (catch_syscall_inferior_data_cleanup): Remove. (_initialize_break_catch_syscall): Update. --- gdb/ChangeLog | 8 ++++++++ gdb/break-catch-syscall.c | 25 +++++-------------------- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e461a06383..0c5fe7c804 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2019-05-08 Tom Tromey + + * break-catch-syscall.c (catch_syscall_inferior_data): Move. + Change type. + (get_catch_syscall_inferior_data): Update. + (catch_syscall_inferior_data_cleanup): Remove. + (_initialize_break_catch_syscall): Update. + 2019-05-08 Tom Tromey * inflow.c (struct terminal_info): Add destructor and diff --git a/gdb/break-catch-syscall.c b/gdb/break-catch-syscall.c index 6a911fbc2a..cd4870f7f5 100644 --- a/gdb/break-catch-syscall.c +++ b/gdb/break-catch-syscall.c @@ -42,8 +42,6 @@ struct syscall_catchpoint : public breakpoint std::vector syscalls_to_be_caught; }; -static const struct inferior_data *catch_syscall_inferior_data = NULL; - struct catch_syscall_inferior_data { /* We keep a count of the number of times the user has requested a @@ -61,31 +59,21 @@ struct catch_syscall_inferior_data int total_syscalls_count; }; +static const struct inferior_key + catch_syscall_inferior_data; + static struct catch_syscall_inferior_data * get_catch_syscall_inferior_data (struct inferior *inf) { struct catch_syscall_inferior_data *inf_data; - inf_data = ((struct catch_syscall_inferior_data *) - inferior_data (inf, catch_syscall_inferior_data)); + inf_data = catch_syscall_inferior_data.get (inf); if (inf_data == NULL) - { - inf_data = new struct catch_syscall_inferior_data (); - set_inferior_data (inf, catch_syscall_inferior_data, inf_data); - } + inf_data = catch_syscall_inferior_data.emplace (inf); return inf_data; } -static void -catch_syscall_inferior_data_cleanup (struct inferior *inf, void *arg) -{ - struct catch_syscall_inferior_data *inf_data - = (struct catch_syscall_inferior_data *) arg; - delete inf_data; -} - - /* Implement the "insert" breakpoint_ops method for syscall catchpoints. */ @@ -617,9 +605,6 @@ _initialize_break_catch_syscall (void) initialize_syscall_catchpoint_ops (); gdb::observers::inferior_exit.attach (clear_syscall_counts); - catch_syscall_inferior_data - = register_inferior_data_with_cleanup (NULL, - catch_syscall_inferior_data_cleanup); add_catch_command ("syscall", _("\ Catch system calls by their names, groups and/or numbers.\n\ -- 2.34.1