lima: fix leak of the screen hash table
authorChristian Gmeiner <christian.gmeiner@gmail.com>
Thu, 16 Sep 2021 16:52:39 +0000 (18:52 +0200)
committerMarge Bot <eric+marge@anholt.net>
Sat, 18 Sep 2021 16:47:49 +0000 (16:47 +0000)
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Erico Nunes <nunes.erico@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12902>

src/gallium/winsys/lima/drm/lima_drm_winsys.c

index b23f111..9c8cd93 100644 (file)
@@ -47,8 +47,14 @@ lima_drm_screen_destroy(struct pipe_screen *pscreen)
 
    mtx_lock(&lima_screen_mutex);
    destroy = --screen->refcnt == 0;
-   if (destroy)
+   if (destroy) {
       _mesa_hash_table_remove_key(fd_tab, intptr_to_pointer(fd));
+
+      if (!fd_tab->entries) {
+         _mesa_hash_table_destroy(fd_tab, NULL);
+         fd_tab = NULL;
+      }
+   }
    mtx_unlock(&lima_screen_mutex);
 
    if (destroy) {