diff options
author | Jim Ingham <jingham@apple.com> | 2016-10-20 22:50:00 +0000 |
---|---|---|
committer | Jim Ingham <jingham@apple.com> | 2016-10-20 22:50:00 +0000 |
commit | ffd9175f743b47d43d61d9f853d24949d089b5ac (patch) | |
tree | 30a8f7c11a04b34fe856ca6e11ef7871c4e87e5c | |
parent | 1d9284c3bc985f4fc9415aae5981332b395354e4 (diff) | |
download | bcm5719-llvm-ffd9175f743b47d43d61d9f853d24949d089b5ac.tar.gz bcm5719-llvm-ffd9175f743b47d43d61d9f853d24949d089b5ac.zip |
Add an API to remove an action from the Process PreResumeActions.
llvm-svn: 284792
-rw-r--r-- | lldb/include/lldb/Target/Process.h | 5 | ||||
-rw-r--r-- | lldb/source/Target/Process.cpp | 10 |
2 files changed, 15 insertions, 0 deletions
diff --git a/lldb/include/lldb/Target/Process.h b/lldb/include/lldb/Target/Process.h index 908438c3f35..737304d86ca 100644 --- a/lldb/include/lldb/Target/Process.h +++ b/lldb/include/lldb/Target/Process.h @@ -2608,6 +2608,8 @@ public: bool RunPreResumeActions(); void ClearPreResumeActions(); + + void ClearPreResumeAction(PreResumeActionCallback callback, void *baton); ProcessRunLock &GetRunLock(); @@ -2942,6 +2944,9 @@ protected: PreResumeCallbackAndBaton(PreResumeActionCallback in_callback, void *in_baton) : callback(in_callback), baton(in_baton) {} + bool operator== (const PreResumeCallbackAndBaton &rhs) { + return callback == rhs.callback && baton == rhs.baton; + } }; using StructuredDataPluginMap = diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index b539ea3a2ee..a87ab4db1f5 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -5860,6 +5860,16 @@ bool Process::RunPreResumeActions() { void Process::ClearPreResumeActions() { m_pre_resume_actions.clear(); } +void Process::ClearPreResumeAction(PreResumeActionCallback callback, void *baton) +{ + PreResumeCallbackAndBaton element(callback, baton); + auto found_iter = std::find(m_pre_resume_actions.begin(), m_pre_resume_actions.end(), element); + if (found_iter != m_pre_resume_actions.end()) + { + m_pre_resume_actions.erase(found_iter); + } +} + ProcessRunLock &Process::GetRunLock() { if (m_private_state_thread.EqualsThread(Host::GetCurrentThread())) return m_private_run_lock; |