From f6de57c1a52b2170e820f092729e289a8d0ec0c0 Mon Sep 17 00:00:00 2001
From: bunnei <bunneidev@gmail.com>
Date: Fri, 14 Jan 2022 16:17:19 -0800
Subject: [PATCH] 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(-)

diff --git a/src/common/fiber.cpp b/src/common/fiber.cpp
index 62010d7625..81b212e4b8 100644
--- a/src/common/fiber.cpp
+++ b/src/common/fiber.cpp
@@ -124,7 +124,10 @@ void Fiber::YieldTo(std::weak_ptr<Fiber> 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();