diff options
Diffstat (limited to 'lldb/source/API/SBBreakpointLocation.cpp')
-rw-r--r-- | lldb/source/API/SBBreakpointLocation.cpp | 11 |
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) { |