Mesa (master): st/xorg: Only unreference texture on pixmap destruction, don 't destroy it.

Michel Dänzer daenzer at kemper.freedesktop.org
Tue Sep 15 16:40:42 UTC 2009


Module: Mesa
Branch: master
Commit: 0469465c31371177d85ab7af103359500323c1f8
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0469465c31371177d85ab7af103359500323c1f8

Author: Michel Dänzer <daenzer at vmware.com>
Date:   Tue Sep 15 18:31:07 2009 +0200

st/xorg: Only unreference texture on pixmap destruction, don't destroy it.

Fixes memory corruption if e.g. the driver still has references to the texture.

---

 src/gallium/state_trackers/xorg/xorg_exa.c |    5 +----
 1 files changed, 1 insertions(+), 4 deletions(-)

diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c
index 88149b9..7552489 100644
--- a/src/gallium/state_trackers/xorg/xorg_exa.c
+++ b/src/gallium/state_trackers/xorg/xorg_exa.c
@@ -466,14 +466,11 @@ static void
 ExaDestroyPixmap(ScreenPtr pScreen, void *dPriv)
 {
     struct exa_pixmap_priv *priv = (struct exa_pixmap_priv *)dPriv;
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
-    modesettingPtr ms = modesettingPTR(pScrn);
 
     if (!priv)
 	return;
 
-    if (priv->tex)
-	ms->screen->texture_destroy(priv->tex);
+    pipe_texture_reference(&priv->tex, NULL);
 
     xfree(priv);
 }




More information about the mesa-commit mailing list