From 1117795eaf8c9395c394e734846420b94abd258b Mon Sep 17 00:00:00 2001 From: Greg Clayton Date: Thu, 10 Feb 2011 06:51:22 +0000 Subject: [PATCH] Fixed a crasher when enabling logging that is due to the new hijack listener stack changes. llvm-svn: 125269 --- lldb/source/Core/Broadcaster.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lldb/source/Core/Broadcaster.cpp b/lldb/source/Core/Broadcaster.cpp index 31b26b4bacf7..647367e17c2e 100644 --- a/lldb/source/Core/Broadcaster.cpp +++ b/lldb/source/Core/Broadcaster.cpp @@ -214,6 +214,16 @@ Broadcaster::PrivateBroadcastEvent (EventSP &event_sp, bool unique) const uint32_t event_type = event_sp->GetType(); Mutex::Locker event_types_locker(m_listeners_mutex); + + Listener *hijacking_listener = NULL; + if (!m_hijacking_listeners.empty()) + { + assert (!m_hijacking_masks.empty()); + hijacking_listener = m_hijacking_listeners.back(); + if ((event_type & m_hijacking_masks.back()) == 0) + hijacking_listener = NULL; + } + LogSP log(lldb_private::GetLogIfAnyCategoriesSet (LIBLLDB_LOG_EVENTS)); if (log) { @@ -224,12 +234,11 @@ Broadcaster::PrivateBroadcastEvent (EventSP &event_sp, bool unique) m_broadcaster_name.AsCString(""), event_description.GetData(), unique, - m_hijacking_listeners.back()); + hijacking_listener); } - if (m_hijacking_listeners.size() > 0 && m_hijacking_masks.back() & event_type) + if (hijacking_listener) { - Listener *hijacking_listener = m_hijacking_listeners.back(); // FIXME: REMOVE THIS EXTRA LOGGING LogSP log_process(lldb_private::GetLogIfAnyCategoriesSet (LIBLLDB_LOG_PROCESS)); if (log_process) -- GitLab