aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/API/SBBreakpointLocation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/API/SBBreakpointLocation.cpp')
-rw-r--r--lldb/source/API/SBBreakpointLocation.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/lldb/source/API/SBBreakpointLocation.cpp b/lldb/source/API/SBBreakpointLocation.cpp
index e786435..2feaa5c 100644
--- a/lldb/source/API/SBBreakpointLocation.cpp
+++ b/lldb/source/API/SBBreakpointLocation.cpp
@@ -160,7 +160,11 @@ void SBBreakpointLocation::SetCondition(const char *condition) {
if (loc_sp) {
std::lock_guard<std::recursive_mutex> guard(
loc_sp->GetTarget().GetAPIMutex());
- loc_sp->SetCondition(StopCondition(condition));
+ // Treat a nullptr as clearing the condition
+ if (!condition)
+ loc_sp->SetCondition(StopCondition());
+ else
+ loc_sp->SetCondition(StopCondition(condition));
}
}
@@ -173,7 +177,10 @@ const char *SBBreakpointLocation::GetCondition() {
std::lock_guard<std::recursive_mutex> guard(
loc_sp->GetTarget().GetAPIMutex());
- return ConstString(loc_sp->GetCondition().GetText()).GetCString();
+ StopCondition cond = loc_sp->GetCondition();
+ if (!cond)
+ return nullptr;
+ return ConstString(cond.GetText()).GetCString();
}
void SBBreakpointLocation::SetAutoContinue(bool auto_continue) {