From 75d0ff177d4a618491475466f218f2ddf909ef12 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Wed, 22 Nov 2017 18:45:26 +0300 Subject: [PATCH] gl: Avoid null deref --- rpcs3/Emu/RSX/GL/GLGSRender.cpp | 5 ++--- rpcs3/Emu/RSX/VK/VKGSRender.cpp | 4 +--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/rpcs3/Emu/RSX/GL/GLGSRender.cpp b/rpcs3/Emu/RSX/GL/GLGSRender.cpp index 291be348cd..da6d48bf0c 100644 --- a/rpcs3/Emu/RSX/GL/GLGSRender.cpp +++ b/rpcs3/Emu/RSX/GL/GLGSRender.cpp @@ -473,14 +473,13 @@ void GLGSRender::end() if (g_cfg.video.strict_rendering_mode) { - if (ds->old_contents != nullptr) + if (ds && ds->old_contents != nullptr) copy_rtt_contents(ds); for (auto &rtt : m_rtts.m_bound_render_targets) { - if (std::get<0>(rtt) != 0) + if (auto surface = std::get<1>(rtt)) { - auto surface = std::get<1>(rtt); if (surface->old_contents != nullptr) copy_rtt_contents(surface); } diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.cpp b/rpcs3/Emu/RSX/VK/VKGSRender.cpp index 64f3641325..cc6da419e8 100644 --- a/rpcs3/Emu/RSX/VK/VKGSRender.cpp +++ b/rpcs3/Emu/RSX/VK/VKGSRender.cpp @@ -1383,10 +1383,8 @@ void VKGSRender::end() //Prepare surfaces if needed for (auto &rtt : m_rtts.m_bound_render_targets) { - if (std::get<0>(rtt) != 0) + if (auto surface = std::get<1>(rtt)) { - auto surface = std::get<1>(rtt); - if (surface->old_contents != nullptr) copy_rtt_contents(surface); }