Fix rare race condition in overlay update code

This commit is contained in:
Cameron Gutman committed 2023-12-31 15:21:18 -06:00
1 parent 114074bfd8
commit e20d56041e
5 files changed
+15 -10

No files matched your search

@@ -566,7 +566,8 @@ void VAAPIRenderer::notifyOverlayUpdated(Overlay::OverlayType type)
}
SDL_Surface* newSurface = Session::get()->getOverlayManager().getUpdatedOverlaySurface(type);
if (newSurface == nullptr && Session::get()->getOverlayManager().isOverlayEnabled(type)) {
bool overlayEnabled = Session::get()->getOverlayManager().isOverlayEnabled(type);
if (newSurface == nullptr && overlayEnabled) {
// There's no updated surface and the overlay is enabled, so just leave the old surface alone.
return;
}
@@ -599,7 +600,7 @@ void VAAPIRenderer::notifyOverlayUpdated(Overlay::OverlayType type)
}
}
if (!Session::get()->getOverlayManager().isOverlayEnabled(type)) {
if (!overlayEnabled) {
SDL_FreeSurface(newSurface);
return;
}