aboutsummaryrefslogtreecommitdiff
path: root/gdb/thread-fsm.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2019-01-02 14:35:57 -0700
committerTom Tromey <tom@tromey.com>2019-02-07 06:08:33 -0700
commit46e3ed7ff94dc2d65f3d937d483c459b4cee6a0a (patch)
tree8bec2b571050d8809efbd5b4c863ee6862e4fee4 /gdb/thread-fsm.c
parent1a5c25988eabb35e0e40ea484b1eea029d9b7f53 (diff)
downloadgdb-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.c109
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;
-}