summaryrefslogtreecommitdiffstats
path: root/lldb/source/API
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-09-13 17:53:38 +0000
committerZachary Turner <zturner@google.com>2016-09-13 17:53:38 +0000
commit4e4fbe821119fd168f3dd65fc88fa4220f6826fe (patch)
treea8766b18f241bc05bd31c01ab88d20a8f1c7e6cb /lldb/source/API
parent8ea02f4e1c050e2bccac28439265656e8a2645c4 (diff)
downloadbcm5719-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.cpp20
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;
}
};
OpenPOWER on IntegriCloud