diff options
author | Tom Tromey <tom@tromey.com> | 2019-01-02 14:35:57 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2019-02-07 06:08:33 -0700 |
commit | 46e3ed7ff94dc2d65f3d937d483c459b4cee6a0a (patch) | |
tree | 8bec2b571050d8809efbd5b4c863ee6862e4fee4 /gdb/thread-fsm.c | |
parent | 1a5c25988eabb35e0e40ea484b1eea029d9b7f53 (diff) | |
download | gdb-46e3ed7ff94dc2d65f3d937d483c459b4cee6a0a.zip gdb-46e3ed7ff94dc2d65f3d937d483c459b4cee6a0a.tar.gz gdb-46e3ed7ff94dc2d65f3d937d483c459b4cee6a0a.tar.bz2 |
C++-ify struct thread_fsm
This C++-ifies struct thread_fsm, replacing the "ops" structure with
virtual methods, and changing all the implementations to derive from
thread_fsm.
gdb/ChangeLog
2019-02-07 Tom Tromey <tom@tromey.com>
* thread.c (thread_cancel_execution_command): Update.
* thread-fsm.h (struct thread_fsm): Add constructor, destructor,
methods.
(struct thread_fsm_ops): Remove.
(thread_fsm_ctor, thread_fsm_delete, thread_fsm_clean_up)
(thread_fsm_should_stop, thread_fsm_return_value)
(thread_fsm_set_finished, thread_fsm_finished_p)
(thread_fsm_async_reply_reason, thread_fsm_should_notify_stop):
Don't declare.
* mi/mi-interp.c (mi_on_normal_stop_1): Update.
* infrun.c (clear_proceed_status_thread)
(clean_up_just_stopped_threads_fsms, fetch_inferior_event)
(print_stop_event): Update.
* infcmd.c (struct step_command_fsm): Inherit from thread_fsm.
Add constructor.
(step_command_fsm_ops): Remove.
(new_step_command_fsm): Remove.
(step_1): Update.
(step_command_fsm::should_stop): Rename from
step_command_fsm_should_stop.
(step_command_fsm::clean_up): Rename from
step_command_fsm_clean_up.
(step_command_fsm::do_async_reply_reason): Rename from
step_command_fsm_async_reply_reason.
(struct until_next_fsm): Inherit from thread_fsm. Add
constructor.
(until_next_fsm_ops): Remove.
(new_until_next_fsm): Remove.
(until_next_fsm::should_stop): Rename from
until_next_fsm_should_stop.
(until_next_fsm::clean_up): Rename from until_next_fsm_clean_up.
(until_next_fsm::do_async_reply_reason): Rename from
until_next_fsm_async_reply_reason.
(struct finish_command_fsm): Inherit from thread_fsm. Add
constructor. Change type of breakpoint.
(finish_command_fsm_ops): Remove.
(new_finish_command_fsm): Remove.
(finish_command_fsm::should_stop): Rename from
finish_command_fsm_should_stop.
(finish_command_fsm::clean_up): Rename from
finish_command_fsm_clean_up.
(finish_command_fsm::return_value): Rename from
finish_command_fsm_return_value.
(finish_command_fsm::do_async_reply_reason): Rename from
finish_command_fsm_async_reply_reason.
(finish_command): Update.
* infcall.c (struct call_thread_fsm): Inherit from thread_fsm.
Add constructor.
(call_thread_fsm_ops): Remove.
(call_thread_fsm::call_thread_fsm): Rename from
new_call_thread_fsm.
(call_thread_fsm::should_stop): Rename from
call_thread_fsm_should_stop.
(call_thread_fsm::should_notify_stop): Rename from
call_thread_fsm_should_notify_stop.
(run_inferior_call, call_function_by_hand_dummy): Update.
* cli/cli-interp.c (should_print_stop_to_console): Update.
* breakpoint.c (struct until_break_fsm): Inherit from thread_fsm.
Add constructor. Change type of location_breakpoint,
caller_breakpoint.
(until_break_fsm_ops): Remove.
(new_until_break_fsm): Remove.
(until_break_fsm::should_stop): Rename from
until_break_fsm_should_stop.
(until_break_fsm::clean_up): Rename from
until_break_fsm_clean_up.
(until_break_fsm::do_async_reply_reason): Rename from
until_break_fsm_async_reply_reason.
(until_break_command): Update.
* thread-fsm.c: Remove.
* Makefile.in (COMMON_SFILES): Remove thread-fsm.c.
Diffstat (limited to 'gdb/thread-fsm.c')
-rw-r--r-- | gdb/thread-fsm.c | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/gdb/thread-fsm.c b/gdb/thread-fsm.c deleted file mode 100644 index 1f0eed7..0000000 --- a/gdb/thread-fsm.c +++ /dev/null @@ -1,109 +0,0 @@ -/* Thread command's finish-state machine, for GDB, the GNU debugger. - Copyright (C) 2015-2019 Free Software Foundation, Inc. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -#include "defs.h" -#include "thread-fsm.h" - -/* See thread-fsm.h. */ - -void -thread_fsm_ctor (struct thread_fsm *self, struct thread_fsm_ops *ops, - struct interp *cmd_interp) -{ - self->command_interp = cmd_interp; - self->finished = 0; - self->ops = ops; -} - -/* See thread-fsm.h. */ - -void -thread_fsm_delete (struct thread_fsm *self) -{ - if (self != NULL) - { - if (self->ops->dtor != NULL) - self->ops->dtor (self); - xfree (self); - } -} - -/* See thread-fsm.h. */ - -void -thread_fsm_clean_up (struct thread_fsm *self, struct thread_info *thread) -{ - if (self->ops->clean_up != NULL) - self->ops->clean_up (self, thread); -} - -/* See thread-fsm.h. */ - -int -thread_fsm_should_stop (struct thread_fsm *self, struct thread_info *thread) -{ - return self->ops->should_stop (self, thread); -} - -/* See thread-fsm.h. */ - -struct return_value_info * -thread_fsm_return_value (struct thread_fsm *self) -{ - if (self->ops->return_value != NULL) - return self->ops->return_value (self); - return NULL; -} - -/* See thread-fsm.h. */ - -void -thread_fsm_set_finished (struct thread_fsm *self) -{ - self->finished = 1; -} - -/* See thread-fsm.h. */ - -int -thread_fsm_finished_p (struct thread_fsm *self) -{ - return self->finished; -} - -/* See thread-fsm.h. */ - -enum async_reply_reason -thread_fsm_async_reply_reason (struct thread_fsm *self) -{ - /* If we didn't finish, then the stop reason must come from - elsewhere. E.g., a breakpoint hit or a signal intercepted. */ - gdb_assert (thread_fsm_finished_p (self)); - - return self->ops->async_reply_reason (self); -} - -/* See thread-fsm.h. */ - -int -thread_fsm_should_notify_stop (struct thread_fsm *self) -{ - if (self->ops->should_notify_stop != NULL) - return self->ops->should_notify_stop (self); - return 1; -} |