diff options
author | Tom de Vries <tdevries@suse.de> | 2024-10-26 08:40:07 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2024-10-26 08:40:07 +0200 |
commit | 5a43f7f040d45ca1bc0066019131cf71d7836cb8 (patch) | |
tree | 7472785973203b3aba4bf19690e107fd0adc6a30 /gdb/ada-tasks.c | |
parent | b3ee98cda498bb256411c5bc23cf7fb9b17f10db (diff) | |
download | gdb-5a43f7f040d45ca1bc0066019131cf71d7836cb8.zip gdb-5a43f7f040d45ca1bc0066019131cf71d7836cb8.tar.gz gdb-5a43f7f040d45ca1bc0066019131cf71d7836cb8.tar.bz2 |
[gdb] Don't create registry keys in destructor
Creating a registry key using emplace calls new:
...
DATA *result = new DATA (std::forward<Args> (args)...);
...
which can throw a bad alloc, which will terminate gdb if called from a
destructor.
Fix this in a few places.
Tested on aarch64-linux.
Approved-By: Tom Tromey <tom@tromey.com>
Diffstat (limited to 'gdb/ada-tasks.c')
-rw-r--r-- | gdb/ada-tasks.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/gdb/ada-tasks.c b/gdb/ada-tasks.c index d050b26..5f4eceb 100644 --- a/gdb/ada-tasks.c +++ b/gdb/ada-tasks.c @@ -1447,7 +1447,7 @@ ada_task_list_changed (struct inferior *inf) static void ada_tasks_invalidate_pspace_data (struct program_space *pspace) { - get_ada_tasks_pspace_data (pspace)->initialized_p = 0; + ada_tasks_pspace_data_handle.clear (pspace); } /* Invalidate the per-inferior data. */ @@ -1455,10 +1455,7 @@ ada_tasks_invalidate_pspace_data (struct program_space *pspace) static void ada_tasks_invalidate_inferior_data (struct inferior *inf) { - struct ada_tasks_inferior_data *data = get_ada_tasks_inferior_data (inf); - - data->known_tasks_kind = ADA_TASKS_UNKNOWN; - data->task_list_valid_p = false; + ada_tasks_inferior_data_handle.clear (inf); } /* The 'normal_stop' observer notification callback. */ |