diff options
author | Frederic Devernay <frederic.devernay@m4x.org> | 2016-04-25 10:39:43 -0600 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2016-04-25 12:59:29 -0600 |
commit | 23949cdf2c85637448d9df0b0b4be647ac722b3a (patch) | |
tree | 99a8cb4005048257818d0eeb70d6bd2d3aec1c10 | |
parent | 63df017fda72e0e165f622eac529c6889ae220d9 (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>
-rw-r--r-- | src/mapi/glapi/glapi_getproc.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/mapi/glapi/glapi_getproc.c b/src/mapi/glapi/glapi_getproc.c index 524a771ca4..8f6f0a4b82 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) |