diff options
author | Pavel Labath <pavel@labath.sk> | 2021-04-13 09:25:37 +0200 |
---|---|---|
committer | Pavel Labath <pavel@labath.sk> | 2021-04-13 09:49:38 +0200 |
commit | c9cf394f796e181b9ee3bc9b69d84fbbba2fe45c (patch) | |
tree | e7b4ff511b7997b3d59e54a91dd6b05b284cfb4a /lldb/source/Host/common/NativeProcessProtocol.cpp | |
parent | aa6eb2af10094e427827343b67b25d606dde10b7 (diff) | |
download | llvm-c9cf394f796e181b9ee3bc9b69d84fbbba2fe45c.zip llvm-c9cf394f796e181b9ee3bc9b69d84fbbba2fe45c.tar.gz llvm-c9cf394f796e181b9ee3bc9b69d84fbbba2fe45c.tar.bz2 |
[lldb] Replace NativeProcess delegate list with a single delegate
In all this time, we've never used more than one delegate. The logic to
support multiple delegates is therefore untested, and becomes
particularly unwieldy once we need to support multiple processes.
Just remove it.
Diffstat (limited to 'lldb/source/Host/common/NativeProcessProtocol.cpp')
-rw-r--r-- | lldb/source/Host/common/NativeProcessProtocol.cpp | 59 |
1 files changed, 7 insertions, 52 deletions
diff --git a/lldb/source/Host/common/NativeProcessProtocol.cpp b/lldb/source/Host/common/NativeProcessProtocol.cpp index 070fda6..d15bb21 100644 --- a/lldb/source/Host/common/NativeProcessProtocol.cpp +++ b/lldb/source/Host/common/NativeProcessProtocol.cpp @@ -25,10 +25,8 @@ using namespace lldb_private; NativeProcessProtocol::NativeProcessProtocol(lldb::pid_t pid, int terminal_fd, NativeDelegate &delegate) - : m_pid(pid), m_terminal_fd(terminal_fd) { - bool registered = RegisterNativeDelegate(delegate); - assert(registered); - (void)registered; + : m_pid(pid), m_delegate(delegate), m_terminal_fd(terminal_fd) { + delegate.InitializeDelegate(this); } lldb_private::Status NativeProcessProtocol::Interrupt() { @@ -295,64 +293,21 @@ Status NativeProcessProtocol::RemoveHardwareBreakpoint(lldb::addr_t addr) { return error; } -bool NativeProcessProtocol::RegisterNativeDelegate( - NativeDelegate &native_delegate) { - std::lock_guard<std::recursive_mutex> guard(m_delegates_mutex); - if (llvm::is_contained(m_delegates, &native_delegate)) - return false; - - m_delegates.push_back(&native_delegate); - native_delegate.InitializeDelegate(this); - return true; -} - -bool NativeProcessProtocol::UnregisterNativeDelegate( - NativeDelegate &native_delegate) { - std::lock_guard<std::recursive_mutex> guard(m_delegates_mutex); - - const auto initial_size = m_delegates.size(); - m_delegates.erase( - remove(m_delegates.begin(), m_delegates.end(), &native_delegate), - m_delegates.end()); - - // We removed the delegate if the count of delegates shrank after removing - // all copies of the given native_delegate from the vector. - return m_delegates.size() < initial_size; -} - void NativeProcessProtocol::SynchronouslyNotifyProcessStateChanged( lldb::StateType state) { Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS)); - std::lock_guard<std::recursive_mutex> guard(m_delegates_mutex); - for (auto native_delegate : m_delegates) - native_delegate->ProcessStateChanged(this, state); + m_delegate.ProcessStateChanged(this, state); - if (log) { - if (!m_delegates.empty()) { - LLDB_LOGF(log, - "NativeProcessProtocol::%s: sent state notification [%s] " - "from process %" PRIu64, - __FUNCTION__, lldb_private::StateAsCString(state), GetID()); - } else { - LLDB_LOGF(log, - "NativeProcessProtocol::%s: would send state notification " - "[%s] from process %" PRIu64 ", but no delegates", - __FUNCTION__, lldb_private::StateAsCString(state), GetID()); - } - } + LLDB_LOG(log, "sent state notification [{0}] from process {1}", state, + GetID()); } void NativeProcessProtocol::NotifyDidExec() { Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS)); - LLDB_LOGF(log, "NativeProcessProtocol::%s - preparing to call delegates", - __FUNCTION__); + LLDB_LOG(log, "process {0} exec()ed", GetID()); - { - std::lock_guard<std::recursive_mutex> guard(m_delegates_mutex); - for (auto native_delegate : m_delegates) - native_delegate->DidExec(this); - } + m_delegate.DidExec(this); } Status NativeProcessProtocol::SetSoftwareBreakpoint(lldb::addr_t addr, |