Mesa (mesa_7_7_branch): st/xorg: move exaMoveInPixmap before trying to fetch it
Zack Rusin
zack at kemper.freedesktop.org
Mon Jan 11 23:27:31 UTC 2010
Module: Mesa
Branch: mesa_7_7_branch
Commit: d880b64423d9eab7e6cbe3ad93dfefd6a9613cce
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d880b64423d9eab7e6cbe3ad93dfefd6a9613cce
Author: Zack Rusin <zackr at vmware.com>
Date: Mon Jan 11 18:27:59 2010 -0500
st/xorg: move exaMoveInPixmap before trying to fetch it
as Michel suggested, this is a cleaner way of fixing crashes caused
by exaGetPixmapDriverPrivate returning null since the data hasn't
been moved yet.
---
src/gallium/state_trackers/xorg/xorg_xv.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/gallium/state_trackers/xorg/xorg_xv.c b/src/gallium/state_trackers/xorg/xorg_xv.c
index 666ff10..a437370 100644
--- a/src/gallium/state_trackers/xorg/xorg_xv.c
+++ b/src/gallium/state_trackers/xorg/xorg_xv.c
@@ -485,9 +485,12 @@ display_video(ScrnInfoPtr pScrn, struct xorg_xv_port_priv *pPriv, int id,
int dxo, dyo;
Bool hdtv;
int x, y, w, h;
- struct exa_pixmap_priv *dst = exaGetPixmapDriverPrivate(pPixmap);
+ struct exa_pixmap_priv *dst;
struct pipe_surface *dst_surf = NULL;
+ exaMoveInPixmap(pPixmap);
+ dst = exaGetPixmapDriverPrivate(pPixmap);
+
if (dst && !dst->tex) {
xorg_exa_set_shared_usage(pPixmap);
pScrn->pScreen->ModifyPixmapHeader(pPixmap, 0, 0, 0, 0, 0, NULL);
@@ -516,7 +519,6 @@ display_video(ScrnInfoPtr pScrn, struct xorg_xv_port_priv *pPriv, int id,
bind_samplers(pPriv);
setup_fs_video_constants(pPriv->r, hdtv);
- exaMoveInPixmap(pPixmap);
DamageDamageRegion(&pPixmap->drawable, dstRegion);
while (nbox--) {
More information about the mesa-commit
mailing list