OSDN Git Service

libdrm/nouveau: unref fences when deleting bo
authorMaarten Maathuis <madman2003@gmail.com>
Thu, 19 Mar 2009 22:59:42 +0000 (23:59 +0100)
committerMaarten Maathuis <madman2003@gmail.com>
Thu, 19 Mar 2009 23:02:12 +0000 (00:02 +0100)
- This was causing a significant memory leak.

libdrm/nouveau/nouveau_bo.c

index e8232ef..860efa1 100644 (file)
@@ -413,6 +413,10 @@ nouveau_bo_del_cb(void *priv)
 {
        struct nouveau_bo_priv *nvbo = priv;
 
+       if (nvbo->fence)
+               nouveau_fence_ref(NULL, &nvbo->fence);
+       if (nvbo->wr_fence)
+               nouveau_fence_ref(NULL, &nvbo->wr_fence);
        nouveau_bo_kfree(nvbo);
        free(nvbo);
 }