From: Roland Scheidegger Date: Tue, 27 Mar 2007 14:22:00 +0000 (+0200) Subject: r128, radeon, r200: Check ctx->WinSysDrawBuffer before calling function that derefere... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=32225d06b9ade78df612b3fd8c3aff93afa3b7ff;p=mesa.git r128, radeon, r200: Check ctx->WinSysDrawBuffer before calling function that dereferences it. Same fix as for r300 (which fixed https://bugs.freedesktop.org/show_bug.cgi?id=10417), since it's likely an issue with those drivers too. --- diff --git a/src/mesa/drivers/dri/r128/r128_lock.c b/src/mesa/drivers/dri/r128/r128_lock.c index 393dd1ed74c..ea23b007f33 100644 --- a/src/mesa/drivers/dri/r128/r128_lock.c +++ b/src/mesa/drivers/dri/r128/r128_lock.c @@ -52,8 +52,10 @@ static void r128UpdatePageFlipping( r128ContextPtr rmesa ) { rmesa->doPageFlip = rmesa->sarea->pfAllowPageFlip; - driFlipRenderbuffers(rmesa->glCtx->WinSysDrawBuffer, - rmesa->sarea->pfCurrentPage); + if (rmesa->glCtx->WinSysDrawBuffer) { + driFlipRenderbuffers(rmesa->glCtx->WinSysDrawBuffer, + rmesa->sarea->pfCurrentPage); + } rmesa->new_state |= R128_NEW_WINDOW; } diff --git a/src/mesa/drivers/dri/r200/r200_lock.c b/src/mesa/drivers/dri/r200/r200_lock.c index 9ffdb2b2127..b050dd7802b 100644 --- a/src/mesa/drivers/dri/r200/r200_lock.c +++ b/src/mesa/drivers/dri/r200/r200_lock.c @@ -53,8 +53,10 @@ static void r200UpdatePageFlipping( r200ContextPtr rmesa ) { rmesa->doPageFlip = rmesa->sarea->pfState; - driFlipRenderbuffers(rmesa->glCtx->WinSysDrawBuffer, - rmesa->sarea->pfCurrentPage); + if (rmesa->glCtx->WinSysDrawBuffer) { + driFlipRenderbuffers(rmesa->glCtx->WinSysDrawBuffer, + rmesa->sarea->pfCurrentPage); + } } diff --git a/src/mesa/drivers/dri/radeon/radeon_lock.c b/src/mesa/drivers/dri/radeon/radeon_lock.c index cdf8a19fb13..312041e0351 100644 --- a/src/mesa/drivers/dri/radeon/radeon_lock.c +++ b/src/mesa/drivers/dri/radeon/radeon_lock.c @@ -56,8 +56,10 @@ static void radeonUpdatePageFlipping( radeonContextPtr rmesa ) { rmesa->doPageFlip = rmesa->sarea->pfState; - driFlipRenderbuffers(rmesa->glCtx->WinSysDrawBuffer, - rmesa->sarea->pfCurrentPage); + if (rmesa->glCtx->WinSysDrawBuffer) { + driFlipRenderbuffers(rmesa->glCtx->WinSysDrawBuffer, + rmesa->sarea->pfCurrentPage); + } }