mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-29 22:20:48 +00:00
cellMsgDialog: fix use-after-free
This commit is contained in:
parent
ae14aa991d
commit
2a344e1d87
@ -166,7 +166,7 @@ error_code open_msg_dialog(bool is_blocking, u32 type, vm::cptr<char> msgString,
|
|||||||
|
|
||||||
const auto notify = std::make_shared<atomic_t<bool>>(false);
|
const auto notify = std::make_shared<atomic_t<bool>>(false);
|
||||||
|
|
||||||
const auto res = manager->create<rsx::overlays::message_dialog>()->show(is_blocking, msgString.get_ptr(), _type, [callback, userData, &return_code, is_blocking, ¬ify](s32 status)
|
const auto res = manager->create<rsx::overlays::message_dialog>()->show(is_blocking, msgString.get_ptr(), _type, [callback, userData, &return_code, is_blocking, notify](s32 status)
|
||||||
{
|
{
|
||||||
if (is_blocking && return_code)
|
if (is_blocking && return_code)
|
||||||
{
|
{
|
||||||
|
@ -166,7 +166,7 @@ namespace rsx
|
|||||||
|
|
||||||
overlayman.attach_thread_input(
|
overlayman.attach_thread_input(
|
||||||
uid, "Home menu",
|
uid, "Home menu",
|
||||||
[¬ify]() { *notify = true; notify->notify_one(); }
|
[notify]() { *notify = true; notify->notify_one(); }
|
||||||
);
|
);
|
||||||
|
|
||||||
if (g_cfg.misc.pause_during_home_menu)
|
if (g_cfg.misc.pause_during_home_menu)
|
||||||
|
@ -302,14 +302,14 @@ namespace rsx
|
|||||||
{
|
{
|
||||||
overlayman.attach_thread_input(
|
overlayman.attach_thread_input(
|
||||||
uid, "Message dialog",
|
uid, "Message dialog",
|
||||||
[¬ify]() { *notify = true; notify->notify_one(); }
|
[notify]() { *notify = true; notify->notify_one(); }
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
overlayman.attach_thread_input(
|
overlayman.attach_thread_input(
|
||||||
uid, "Message dialog",
|
uid, "Message dialog",
|
||||||
[¬ify]() { *notify = true; notify->notify_one(); },
|
[notify]() { *notify = true; notify->notify_one(); },
|
||||||
nullptr,
|
nullptr,
|
||||||
[&]()
|
[&]()
|
||||||
{
|
{
|
||||||
|
@ -1625,7 +1625,7 @@ namespace rsx
|
|||||||
|
|
||||||
overlayman.attach_thread_input(
|
overlayman.attach_thread_input(
|
||||||
uid, "OSK",
|
uid, "OSK",
|
||||||
[¬ify]() { *notify = true; notify->notify_one(); }
|
[notify]() { *notify = true; notify->notify_one(); }
|
||||||
);
|
);
|
||||||
|
|
||||||
while (!Emu.IsStopped() && !*notify)
|
while (!Emu.IsStopped() && !*notify)
|
||||||
|
@ -244,7 +244,7 @@ namespace rsx
|
|||||||
|
|
||||||
overlayman.attach_thread_input(
|
overlayman.attach_thread_input(
|
||||||
uid, "User list dialog",
|
uid, "User list dialog",
|
||||||
[¬ify]() { *notify = true; notify->notify_one(); }
|
[notify]() { *notify = true; notify->notify_one(); }
|
||||||
);
|
);
|
||||||
|
|
||||||
while (!Emu.IsStopped() && !*notify)
|
while (!Emu.IsStopped() && !*notify)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user