Skip to content

Commit ac83e27

Browse files
authored
Merge pull request #1427 from medismailben/apple/stable/20200108
[lldb/api] Add checks for StackFrame::GetRegisterContext calls (NFC)
2 parents 1c73376 + 4547c88 commit ac83e27

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

lldb/source/API/SBFrame.cpp

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -354,15 +354,15 @@ bool SBFrame::SetPC(addr_t new_pc) {
354354
std::unique_lock<std::recursive_mutex> lock;
355355
ExecutionContext exe_ctx(m_opaque_sp.get(), lock);
356356

357-
StackFrame *frame = nullptr;
358357
Target *target = exe_ctx.GetTargetPtr();
359358
Process *process = exe_ctx.GetProcessPtr();
360359
if (target && process) {
361360
Process::StopLocker stop_locker;
362361
if (stop_locker.TryLock(&process->GetRunLock())) {
363-
frame = exe_ctx.GetFramePtr();
364-
if (frame) {
365-
ret_val = frame->GetRegisterContext()->SetPC(new_pc);
362+
if (StackFrame *frame = exe_ctx.GetFramePtr()) {
363+
if (RegisterContextSP reg_ctx_sp = frame->GetRegisterContext()) {
364+
ret_val = reg_ctx_sp->SetPC(new_pc);
365+
}
366366
}
367367
}
368368
}
@@ -377,15 +377,15 @@ addr_t SBFrame::GetSP() const {
377377
std::unique_lock<std::recursive_mutex> lock;
378378
ExecutionContext exe_ctx(m_opaque_sp.get(), lock);
379379

380-
StackFrame *frame = nullptr;
381380
Target *target = exe_ctx.GetTargetPtr();
382381
Process *process = exe_ctx.GetProcessPtr();
383382
if (target && process) {
384383
Process::StopLocker stop_locker;
385384
if (stop_locker.TryLock(&process->GetRunLock())) {
386-
frame = exe_ctx.GetFramePtr();
387-
if (frame) {
388-
addr = frame->GetRegisterContext()->GetSP();
385+
if (StackFrame *frame = exe_ctx.GetFramePtr()) {
386+
if (RegisterContextSP reg_ctx_sp = frame->GetRegisterContext()) {
387+
addr = reg_ctx_sp->GetSP();
388+
}
389389
}
390390
}
391391
}
@@ -400,15 +400,16 @@ addr_t SBFrame::GetFP() const {
400400
std::unique_lock<std::recursive_mutex> lock;
401401
ExecutionContext exe_ctx(m_opaque_sp.get(), lock);
402402

403-
StackFrame *frame = nullptr;
404403
Target *target = exe_ctx.GetTargetPtr();
405404
Process *process = exe_ctx.GetProcessPtr();
406405
if (target && process) {
407406
Process::StopLocker stop_locker;
408407
if (stop_locker.TryLock(&process->GetRunLock())) {
409-
frame = exe_ctx.GetFramePtr();
410-
if (frame)
411-
addr = frame->GetRegisterContext()->GetFP();
408+
if (StackFrame *frame = exe_ctx.GetFramePtr()) {
409+
if (RegisterContextSP reg_ctx_sp = frame->GetRegisterContext()) {
410+
addr = reg_ctx_sp->GetFP();
411+
}
412+
}
412413
}
413414
}
414415

0 commit comments

Comments
 (0)