From f6de57c1a52b2170e820f092729e289a8d0ec0c0 Mon Sep 17 00:00:00 2001 From: bunnei Date: Fri, 14 Jan 2022 16:17:19 -0800 Subject: common: fiber: YieldTo: Avoid hard crash on nullptr previous_fiber. - When the emulator crashes to desktop below, we don't even get this captured in a log, making such issues harder to debug. --- src/common/fiber.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/common/fiber.cpp b/src/common/fiber.cpp index 62010d762..81b212e4b 100644 --- a/src/common/fiber.cpp +++ b/src/common/fiber.cpp @@ -124,7 +124,10 @@ void Fiber::YieldTo(std::weak_ptr weak_from, Fiber& to) { // "from" might no longer be valid if the thread was killed if (auto from = weak_from.lock()) { - ASSERT(from->impl->previous_fiber != nullptr); + if (from->impl->previous_fiber == nullptr) { + ASSERT_MSG(false, "previous_fiber is nullptr!"); + return; + } from->impl->previous_fiber->impl->context = transfer.fctx; from->impl->previous_fiber->impl->guard.unlock(); from->impl->previous_fiber.reset(); -- cgit v1.2.3