For GLX_BACK_BUFFER_AGE_EXT query added extra null check.
Signed-off-by: Juha-Pekka Heikkila <[email protected]>
---
src/glx/glx_pbuffer.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/glx/glx_pbuffer.c b/src/glx/glx_pbuffer.c
index 8f48093..322f241 100644
--- a/src/glx/glx_pbuffer.c
+++ b/src/glx/glx_pbuffer.c
@@ -319,7 +319,6 @@ GetDrawableAttribute(Display * dpy, GLXDrawable drawable,
pdraw = GetGLXDRIDrawable(dpy, drawable);
if (attribute == GLX_BACK_BUFFER_AGE_EXT) {
- struct glx_screen *psc = pdraw->psc;
struct glx_context *gc = __glXGetCurrentContext();
/* The GLX_EXT_buffer_age spec says:
@@ -328,12 +327,16 @@ GetDrawableAttribute(Display * dpy, GLXDrawable drawable,
* the calling thread's current context a GLXBadDrawable error is
* generated."
*/
- if (gc == NULL || gc->currentDpy != dpy ||
- (gc->currentDrawable != drawable && gc->currentReadable != drawable))
{
- __glXSendError(dpy, GLXBadDrawable, drawable,
X_GLXGetDrawableAttributes, false);
+ if (pdraw == NULL || gc == NULL || gc->currentDpy != dpy ||
+ (gc->currentDrawable != drawable &&
+ gc->currentReadable != drawable)) {
+ __glXSendError(dpy, GLXBadDrawable, drawable,
+ X_GLXGetDrawableAttributes, false);
return 0;
}
+ struct glx_screen *psc = pdraw->psc;
+
if (psc->driScreen->getBufferAge != NULL)
*value = psc->driScreen->getBufferAge(pdraw);
--
1.8.1.2
_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev