dri3: Check for dummyContext to see if the glx_context is valid
authorStefan Dirsch <sndirsch@suse.de>
Mon, 25 Apr 2016 13:06:25 +0000 (15:06 +0200)
committerEmil Velikov <emil.l.velikov@gmail.com>
Wed, 27 Apr 2016 12:03:34 +0000 (13:03 +0100)
According to the comments in src/glx/glxcurrent.c __glXGetCurrentContext()
always returns a valid pointer. If no context is made current, it will
contain dummyContext. Thus a test for NULL will always fail.

https://lists.freedesktop.org/archives/mesa-dev/2016-April/113962.html

Signed-off-by: Stefan Dirsch <sndirsch@suse.de>
Reviewed-by: Egbert Eich <eich@freedesktop.org>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
src/glx/dri3_glx.c

index 6729357..90d7bba 100644 (file)
@@ -127,13 +127,9 @@ static __DRIcontext *
 glx_dri3_get_dri_context(struct loader_dri3_drawable *draw)
 {
    struct glx_context *gc = __glXGetCurrentContext();
+   struct dri3_context *dri3Ctx = (struct dri3_context *) gc;
 
-   if (gc) {
-      struct dri3_context *dri3Ctx = (struct dri3_context *) gc;
-      return dri3Ctx->driContext;
-   }
-
-   return NULL;
+   return (gc != &dummyContext) ? dri3Ctx->driContext : NULL;
 }
 
 static void