wgl: Check for stw_device->screen before trying to destroy it

The stw_device and its screen are set up independently. It's possible
to have a device without a screen if the DLL is loaded but never
called into, since DllMain for PROCESS_ATTACH sets up the stw_device,
but the screen is initialized later on the first call to get pixel
formats. If the DLL is loaded and then unloaded, don't crash.

Cc: mesa-stable
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27892>
This commit is contained in:
Jesse Natalie 2024-02-29 10:11:04 -08:00 committed by Marge Bot
parent 2c10767732
commit f96d31bc8a

View file

@ -258,7 +258,8 @@ stw_cleanup(void)
st_screen_destroy(stw_dev->fscreen);
FREE(stw_dev->fscreen);
stw_dev->screen->destroy(stw_dev->screen);
if (stw_dev->screen)
stw_dev->screen->destroy(stw_dev->screen);
stw_tls_cleanup();