diff options
Diffstat (limited to 'source/Core/Event.cpp')
-rw-r--r-- | source/Core/Event.cpp | 104 |
1 files changed, 53 insertions, 51 deletions
diff --git a/source/Core/Event.cpp b/source/Core/Event.cpp index 293a322257ef..6b07e4d91987 100644 --- a/source/Core/Event.cpp +++ b/source/Core/Event.cpp @@ -9,6 +9,8 @@ // C Includes // C++ Includes +#include <algorithm> + // Other libraries and framework includes // Project includes #include "lldb/Core/Event.h" @@ -19,82 +21,89 @@ #include "lldb/Core/Stream.h" #include "lldb/Host/Endian.h" #include "lldb/Target/Process.h" -#include <algorithm> using namespace lldb; using namespace lldb_private; -//---------------------------------------------------------------------- -// Event constructor -//---------------------------------------------------------------------- Event::Event (Broadcaster *broadcaster, uint32_t event_type, EventData *data) : - m_broadcaster (broadcaster), - m_type (event_type), - m_data_ap (data) + m_broadcaster_wp(broadcaster->GetBroadcasterImpl()), + m_type(event_type), + m_data_sp(data) { } -Event::Event(uint32_t event_type, EventData *data) : - m_broadcaster (NULL), // Set by the broadcaster when this event gets broadcast - m_type (event_type), - m_data_ap (data) +Event::Event (Broadcaster *broadcaster, uint32_t event_type, const EventDataSP &event_data_sp) : + m_broadcaster_wp(broadcaster->GetBroadcasterImpl()), + m_type(event_type), + m_data_sp(event_data_sp) { } +Event::Event(uint32_t event_type, EventData *data) : + m_broadcaster_wp(), + m_type(event_type), + m_data_sp(data) +{ +} -//---------------------------------------------------------------------- -// Event destructor -//---------------------------------------------------------------------- -Event::~Event () +Event::Event(uint32_t event_type, const EventDataSP &event_data_sp) : + m_broadcaster_wp(), + m_type(event_type), + m_data_sp(event_data_sp) { } +Event::~Event() = default; + void Event::Dump (Stream *s) const { - if (m_broadcaster) + Broadcaster *broadcaster; + Broadcaster::BroadcasterImplSP broadcaster_impl_sp(m_broadcaster_wp.lock()); + if (broadcaster_impl_sp) + broadcaster = broadcaster_impl_sp->GetBroadcaster(); + else + broadcaster = nullptr; + + if (broadcaster) { StreamString event_name; - if (m_broadcaster->GetEventNames (event_name, m_type, false)) + if (broadcaster->GetEventNames (event_name, m_type, false)) s->Printf("%p Event: broadcaster = %p (%s), type = 0x%8.8x (%s), data = ", static_cast<const void*>(this), - static_cast<void*>(m_broadcaster), - m_broadcaster->GetBroadcasterName().GetCString(), + static_cast<void*>(broadcaster), + broadcaster->GetBroadcasterName().GetCString(), m_type, event_name.GetString().c_str()); else s->Printf("%p Event: broadcaster = %p (%s), type = 0x%8.8x, data = ", static_cast<const void*>(this), - static_cast<void*>(m_broadcaster), - m_broadcaster->GetBroadcasterName().GetCString(), m_type); + static_cast<void*>(broadcaster), + broadcaster->GetBroadcasterName().GetCString(), m_type); } else s->Printf("%p Event: broadcaster = NULL, type = 0x%8.8x, data = ", static_cast<const void*>(this), m_type); - if (m_data_ap.get() == NULL) - s->Printf ("<NULL>"); - else + if (m_data_sp) { s->PutChar('{'); - m_data_ap->Dump (s); + m_data_sp->Dump (s); s->PutChar('}'); } + else + s->Printf ("<NULL>"); } void Event::DoOnRemoval () { - if (m_data_ap.get()) - m_data_ap->DoOnRemoval (this); + if (m_data_sp) + m_data_sp->DoOnRemoval (this); } -EventData::EventData() -{ -} +EventData::EventData() = default; -EventData::~EventData() -{ -} +EventData::~EventData() = default; void EventData::Dump (Stream *s) const @@ -119,9 +128,7 @@ EventDataBytes::EventDataBytes (const void *src, size_t src_len) : SetBytes (src, src_len); } -EventDataBytes::~EventDataBytes() -{ -} +EventDataBytes::~EventDataBytes() = default; const ConstString & EventDataBytes::GetFlavorString () @@ -144,10 +151,10 @@ EventDataBytes::Dump (Stream *s) const { s->Printf("\"%s\"", m_bytes.c_str()); } - else if (m_bytes.size() > 0) + else if (!m_bytes.empty()) { DataExtractor data; - data.SetData(&m_bytes[0], m_bytes.size(), endian::InlHostByteOrder()); + data.SetData(m_bytes.data(), m_bytes.size(), endian::InlHostByteOrder()); data.Dump(s, 0, eFormatBytes, 1, m_bytes.size(), 32, LLDB_INVALID_ADDRESS, 0, 0); } } @@ -155,9 +162,7 @@ EventDataBytes::Dump (Stream *s) const const void * EventDataBytes::GetBytes() const { - if (m_bytes.empty()) - return NULL; - return &m_bytes[0]; + return (m_bytes.empty() ? nullptr : m_bytes.data()); } size_t @@ -169,7 +174,7 @@ EventDataBytes::GetByteSize() const void EventDataBytes::SetBytes (const void *src, size_t src_len) { - if (src && src_len > 0) + if (src != nullptr && src_len > 0) m_bytes.assign ((const char *)src, src_len); else m_bytes.clear(); @@ -178,27 +183,26 @@ EventDataBytes::SetBytes (const void *src, size_t src_len) void EventDataBytes::SetBytesFromCString (const char *cstr) { - if (cstr && cstr[0]) + if (cstr != nullptr && cstr[0]) m_bytes.assign (cstr); else m_bytes.clear(); } - const void * EventDataBytes::GetBytesFromEvent (const Event *event_ptr) { const EventDataBytes *e = GetEventDataFromEvent (event_ptr); - if (e) + if (e != nullptr) return e->GetBytes(); - return NULL; + return nullptr; } size_t EventDataBytes::GetByteSizeFromEvent (const Event *event_ptr) { const EventDataBytes *e = GetEventDataFromEvent (event_ptr); - if (e) + if (e != nullptr) return e->GetByteSize(); return 0; } @@ -206,13 +210,13 @@ EventDataBytes::GetByteSizeFromEvent (const Event *event_ptr) const EventDataBytes * EventDataBytes::GetEventDataFromEvent (const Event *event_ptr) { - if (event_ptr) + if (event_ptr != nullptr) { const EventData *event_data = event_ptr->GetData(); if (event_data && event_data->GetFlavor() == EventDataBytes::GetFlavorString()) return static_cast <const EventDataBytes *> (event_data); } - return NULL; + return nullptr; } void @@ -220,5 +224,3 @@ EventDataBytes::SwapBytes (std::string &new_bytes) { m_bytes.swap (new_bytes); } - - |