diff options
author | Zachary Turner <zturner@google.com> | 2016-09-13 17:53:38 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2016-09-13 17:53:38 +0000 |
commit | 4e4fbe821119fd168f3dd65fc88fa4220f6826fe (patch) | |
tree | a8766b18f241bc05bd31c01ab88d20a8f1c7e6cb /lldb/source/API | |
parent | 8ea02f4e1c050e2bccac28439265656e8a2645c4 (diff) | |
download | bcm5719-llvm-4e4fbe821119fd168f3dd65fc88fa4220f6826fe.tar.gz bcm5719-llvm-4e4fbe821119fd168f3dd65fc88fa4220f6826fe.zip |
Some more pointer safety in Breakpoint.
Plumb unique_ptrs<> all the way through the baton interface.
NFC, this is a minor improvement to remove the possibility of an
accidental pointer ownership issue.
Reviewed By: jingham
Differential Revision: https://reviews.llvm.org/D24495
llvm-svn: 281360
Diffstat (limited to 'lldb/source/API')
-rw-r--r-- | lldb/source/API/SBBreakpoint.cpp | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/lldb/source/API/SBBreakpoint.cpp b/lldb/source/API/SBBreakpoint.cpp index 1887ad12ef1..bbdb23766cc 100644 --- a/lldb/source/API/SBBreakpoint.cpp +++ b/lldb/source/API/SBBreakpoint.cpp @@ -38,6 +38,8 @@ #include "lldb/lldb-enumerations.h" +#include "llvm/ADT/STLExtras.h" + using namespace lldb; using namespace lldb_private; @@ -46,23 +48,13 @@ struct CallbackData { void *callback_baton; }; -class SBBreakpointCallbackBaton : public Baton { +class SBBreakpointCallbackBaton : public TypedBaton<CallbackData> { public: SBBreakpointCallbackBaton(SBBreakpoint::BreakpointHitCallback callback, void *baton) - : Baton(new CallbackData) { - CallbackData *data = (CallbackData *)m_data; - data->callback = callback; - data->callback_baton = baton; - } - - ~SBBreakpointCallbackBaton() override { - CallbackData *data = (CallbackData *)m_data; - - if (data) { - delete data; - m_data = nullptr; - } + : TypedBaton(llvm::make_unique<CallbackData>()) { + getItem()->callback = callback; + getItem()->callback_baton = baton; } }; |