summaryrefslogtreecommitdiffstats
path: root/src/glx/tests
diff options
context:
space:
mode:
authorBernard Kilarski <bernard.r.kilarski@intel.com>2016-06-07 13:33:33 +0300
committerTapani Pälli <tapani.palli@intel.com>2016-08-15 09:24:10 +0300
commit2e3f067458e4a70da91b27fab61ef3d292ded4cf (patch)
tree2c281b1bc75c9b14ae64c672e9c2aa26298577c9 /src/glx/tests
parent312ece9cd773553a8a45a5d81edc7c09032ff4f1 (diff)
downloadexternal_mesa3d-2e3f067458e4a70da91b27fab61ef3d292ded4cf.zip
external_mesa3d-2e3f067458e4a70da91b27fab61ef3d292ded4cf.tar.gz
external_mesa3d-2e3f067458e4a70da91b27fab61ef3d292ded4cf.tar.bz2
glx: fix error code when there is no context bound
v2: change all related NULL checks to check against dummyContext v3: really check for dummyContext *only* when ctx was from __glXGetCurrentContext v4: cover more checks, add dummyBuffer, dummyVtable (Emil) Signed-off-by: Bernard Kilarski <bernard.r.kilarski@intel.com> Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Cc: "11.2" <mesa-stable@lists.freedesktop.org>
Diffstat (limited to 'src/glx/tests')
-rw-r--r--src/glx/tests/fake_glx_screen.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/glx/tests/fake_glx_screen.cpp b/src/glx/tests/fake_glx_screen.cpp
index db20749..801f54a 100644
--- a/src/glx/tests/fake_glx_screen.cpp
+++ b/src/glx/tests/fake_glx_screen.cpp
@@ -75,7 +75,20 @@ indirect_create_context_attribs(struct glx_screen *base,
return indirect_create_context(base, config_base, shareList, 0);
}
-__thread void *__glX_tls_Context = NULL;
+/* This is necessary so that we don't have to link with glxcurrent.c
+ * which would require us to link with X libraries and what not.
+ */
+GLubyte dummyBuffer[__GLX_BUFFER_LIMIT_SIZE];
+struct glx_context_vtable dummyVtable;
+struct glx_context dummyContext = {
+ &dummyBuffer[0],
+ &dummyBuffer[0],
+ &dummyBuffer[0],
+ &dummyBuffer[__GLX_BUFFER_LIMIT_SIZE],
+ sizeof(dummyBuffer),
+ &dummyVtable
+};
+__thread void *__glX_tls_Context = &dummyContext;
#if !defined(GLX_USE_TLS)
extern "C" struct glx_context *