summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederic Devernay <frederic.devernay@m4x.org>2016-04-25 10:39:43 -0600
committerEmil Velikov <emil.l.velikov@gmail.com>2016-05-05 11:47:19 +0100
commit97f91d88c02ec8a6a383fb45352a2586cb4bed64 (patch)
tree182b109760ab28fe57efac8761a4b045a8c00a8c
parentc6acc7812fad32eff4cca316d5703a061cfbbaa6 (diff)
glapi: fix _glapi_get_proc_address() for mangled function names
In the dispatch table, all functions are stored without the "m" prefix. Modify code so that OSMesaGetProcAddress works both with gl and mgl prefixes. Similar to https://lists.freedesktop.org/archives/mesa-dev/2015-September/095251.html Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94994 Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org> Reviewed-by: Brian Paul <brianp@vmware.com> (cherry picked from commit 23949cdf2c85637448d9df0b0b4be647ac722b3a)
-rw-r--r--src/mapi/glapi/glapi_getproc.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/src/mapi/glapi/glapi_getproc.c b/src/mapi/glapi/glapi_getproc.c
index 524a771ca43..8f6f0a4b82e 100644
--- a/src/mapi/glapi/glapi_getproc.c
+++ b/src/mapi/glapi/glapi_getproc.c
@@ -62,12 +62,7 @@ get_static_proc( const char * n )
GLuint i;
for (i = 0; static_functions[i].Name_offset >= 0; i++) {
const char *testName = gl_string_table + static_functions[i].Name_offset;
-#ifdef MANGLE
- /* skip the prefix on the name */
- if (strcmp(testName, n + 1) == 0)
-#else
if (strcmp(testName, n) == 0)
-#endif
{
return &static_functions[i];
}
@@ -516,15 +511,14 @@ _glapi_get_proc_address(const char *funcName)
init_glapi_relocs_once();
-#ifdef MANGLE
- /* skip the prefix on the name */
- if (funcName[1] != 'g' || funcName[2] != 'l')
- return NULL;
-#else
- if (funcName[0] != 'g' || funcName[1] != 'l')
- return NULL;
+#ifdef USE_MGL_NAMESPACE
+ if (funcName && funcName[0] == 'm')
+ funcName++;
#endif
+ if (!funcName || funcName[0] != 'g' || funcName[1] != 'l')
+ return NULL;
+
/* search extension functions first */
func = get_extension_proc_address(funcName);
if (func)