mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 03:08:05 +02:00
gallium: Rename dri_destroy_screen_helper into dri_release_screen
This function is actually used before the use of dri_init_screen_helper so it is not exactly releasing the memory allocated by the screen helper. Also clear the base.screen variable after destroy to make this function reentrant. Signed-off-by: Corentin Noël <corentin.noel@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23054>
This commit is contained in:
parent
c2d90602ca
commit
744c849a08
5 changed files with 10 additions and 8 deletions
|
|
@ -2324,7 +2324,7 @@ dri2_init_screen(struct dri_screen *screen)
|
|||
return configs;
|
||||
|
||||
fail:
|
||||
dri_destroy_screen_helper(screen);
|
||||
dri_release_screen(screen);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -2377,7 +2377,7 @@ dri_swrast_kms_init_screen(struct dri_screen *screen)
|
|||
return configs;
|
||||
|
||||
fail:
|
||||
dri_destroy_screen_helper(screen);
|
||||
dri_release_screen(screen);
|
||||
|
||||
#endif // GALLIUM_SOFTPIPE
|
||||
return NULL;
|
||||
|
|
|
|||
|
|
@ -769,12 +769,14 @@ dri_get_param(struct pipe_frontend_screen *fscreen,
|
|||
}
|
||||
|
||||
void
|
||||
dri_destroy_screen_helper(struct dri_screen * screen)
|
||||
dri_release_screen(struct dri_screen * screen)
|
||||
{
|
||||
st_screen_destroy(&screen->base);
|
||||
|
||||
if (screen->base.screen)
|
||||
if (screen->base.screen) {
|
||||
screen->base.screen->destroy(screen->base.screen);
|
||||
screen->base.screen = NULL;
|
||||
}
|
||||
|
||||
if (screen->dev) {
|
||||
pipe_loader_release(&screen->dev, 1);
|
||||
|
|
@ -787,7 +789,7 @@ dri_destroy_screen_helper(struct dri_screen * screen)
|
|||
void
|
||||
dri_destroy_screen(struct dri_screen *screen)
|
||||
{
|
||||
dri_destroy_screen_helper(screen);
|
||||
dri_release_screen(screen);
|
||||
|
||||
free(screen->options.force_gl_vendor);
|
||||
free(screen->options.force_gl_renderer);
|
||||
|
|
|
|||
|
|
@ -223,7 +223,7 @@ dri_init_screen_helper(struct dri_screen *screen,
|
|||
struct pipe_screen *pscreen);
|
||||
|
||||
void
|
||||
dri_destroy_screen_helper(struct dri_screen * screen);
|
||||
dri_release_screen(struct dri_screen * screen);
|
||||
|
||||
void
|
||||
dri_destroy_screen(struct dri_screen *screen);
|
||||
|
|
|
|||
|
|
@ -593,7 +593,7 @@ drisw_init_screen(struct dri_screen *screen)
|
|||
|
||||
return configs;
|
||||
fail:
|
||||
dri_destroy_screen_helper(screen);
|
||||
dri_release_screen(screen);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ kopper_init_screen(struct dri_screen *screen)
|
|||
|
||||
return configs;
|
||||
fail:
|
||||
dri_destroy_screen_helper(screen);
|
||||
dri_release_screen(screen);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue