diff options
author | Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> | 2021-04-22 17:22:39 +0200 |
---|---|---|
committer | Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> | 2021-04-22 17:22:39 +0200 |
commit | 4efeb0d3e8ee210cd61b15355cca39b16b66004d (patch) | |
tree | 4c74b54f1e733a7a222d618091b06c6fca18237d /gdb/inferior.c | |
parent | c4c493de2bbfc7414d0ec51f40f17cd7b1ff74f2 (diff) | |
download | gdb-4efeb0d3e8ee210cd61b15355cca39b16b66004d.zip gdb-4efeb0d3e8ee210cd61b15355cca39b16b66004d.tar.gz gdb-4efeb0d3e8ee210cd61b15355cca39b16b66004d.tar.bz2 |
gdb/continuations: turn continuation functions into inferior methods
Turn continuations-related functions into methods of the inferior
class. This is a refactoring.
gdb/ChangeLog:
2021-04-22 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
* Makefile.in (COMMON_SFILES): Remove continuations.c.
* inferior.c (inferior::add_continuation): New method, adapted
from 'add_inferior_continuation'.
(inferior::do_all_continuations): New method, adapted from
'do_all_inferior_continuations'.
(inferior::~inferior): Clear the list of continuations directly.
* inferior.h (class inferior) <continuations>: Rename into...
<m_continuations>: ...this and make private.
* continuations.c: Remove.
* continuations.h: Remove.
* event-top.c: Don't include "continuations.h".
Update the users below.
* inf-loop.c (inferior_event_handler)
* infcmd.c (attach_command)
(notice_new_inferior): Update.
Diffstat (limited to 'gdb/inferior.c')
-rw-r--r-- | gdb/inferior.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/gdb/inferior.c b/gdb/inferior.c index 9188f72..df3b7bf 100644 --- a/gdb/inferior.c +++ b/gdb/inferior.c @@ -31,7 +31,6 @@ #include "symfile.h" #include "gdbsupport/environ.h" #include "cli/cli-utils.h" -#include "continuations.h" #include "arch-utils.h" #include "target-descriptions.h" #include "readline/tilde.h" @@ -74,7 +73,7 @@ inferior::~inferior () { inferior *inf = this; - discard_all_inferior_continuations (inf); + m_continuations.clear (); inferior_free_data (inf); xfree (inf->args); target_desc_info_free (inf->tdesc_info); @@ -106,6 +105,23 @@ inferior::tty () return m_terminal.get (); } +void +inferior::add_continuation (std::function<void ()> &&cont) +{ + m_continuations.emplace_front (std::move (cont)); +} + +void +inferior::do_all_continuations () +{ + while (!m_continuations.empty ()) + { + auto iter = m_continuations.begin (); + (*iter) (); + m_continuations.erase (iter); + } +} + struct inferior * add_inferior_silent (int pid) { |