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:
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user