handle empty callback returns

This commit is contained in:
Megamouse 2019-06-20 15:51:50 +02:00
parent 08c581947d
commit 8debdfcd09
6 changed files with 91 additions and 43 deletions

View file

@ -394,9 +394,11 @@ error_code cellOskDialogSetSeparateWindowOption(vm::ptr<CellOskDialogSeparateWin
return CELL_OSKDIALOG_ERROR_PARAM;
}
auto osk = _get_osk_dialog(true);
osk->use_seperate_windows = true;
osk->osk_continuous_mode = (CellOskDialogContinuousMode)(u32)windowOption->continuousMode;
if (auto osk = _get_osk_dialog(true))
{
osk->use_seperate_windows = true;
osk->osk_continuous_mode = (CellOskDialogContinuousMode)(u32)windowOption->continuousMode;
}
return CELL_OK;
}
@ -523,8 +525,10 @@ error_code cellOskDialogExtRegisterConfirmWordFilterCallback(vm::ptr<cellOskDial
return CELL_OSKDIALOG_ERROR_PARAM;
}
auto osk = _get_osk_dialog(true);
osk->osk_confirm_callback = pCallback;
if (auto osk = _get_osk_dialog(true))
{
osk->osk_confirm_callback = pCallback;
}
return CELL_OK;
}

View file

@ -538,7 +538,14 @@ static NEVER_INLINE error_code savedata_op(ppu_thread& ppu, u32 operation, u32 v
lv2_obj::sleep(ppu);
// Display Save Data List asynchronously in the GUI thread.
selected = Emu.GetCallbacks().get_save_dialog()->ShowSaveDataList(save_entries, focused, operation, listSet);
if (auto save_dialog = Emu.GetCallbacks().get_save_dialog())
{
selected = save_dialog->ShowSaveDataList(save_entries, focused, operation, listSet);
}
else
{
selected = -2;
}
// Reschedule
if (ppu.check_state())

View file

@ -598,7 +598,10 @@ error_code sceNpTrophyUnlockTrophy(u32 context, u32 handle, s32 trophyId, vm::pt
*details = SceNpTrophyDetails();
}
Emu.GetCallbacks().get_trophy_notification_dialog()->ShowTrophyNotification(*details, trophyIconData);
if (auto trophy_notification_dialog = Emu.GetCallbacks().get_trophy_notification_dialog())
{
trophy_notification_dialog->ShowTrophyNotification(*details, trophyIconData);
}
}
return CELL_OK;