Fix sysutil_send_system_cmd at Emu.Stop()

This commit is contained in:
Eladash 2021-03-12 10:15:24 +02:00 committed by Ivan
parent 729cd9284e
commit 923ba6f3bb
2 changed files with 15 additions and 6 deletions

View file

@ -57,13 +57,13 @@ extern void sysutil_register_cb(std::function<s32(ppu_thread&)>&& cb)
extern void sysutil_send_system_cmd(u64 status, u64 param)
{
if (auto& cbm = g_fxo->get<sysutil_cb_manager>(); g_fxo->is_init<sysutil_cb_manager>() && !Emu.IsStopped())
if (auto cbm = g_fxo->try_get<sysutil_cb_manager>())
{
for (sysutil_cb_manager::registered_cb cb : cbm.callbacks)
for (sysutil_cb_manager::registered_cb cb : cbm->callbacks)
{
if (cb.first)
{
cbm.registered.push([=](ppu_thread& ppu) -> s32
cbm->registered.push([=](ppu_thread& ppu) -> s32
{
// TODO: check it and find the source of the return value (void isn't equal to CELL_OK)
cb.first(ppu, status, param, cb.second);