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>
This commit is contained in:
Frederic Devernay 2016-04-25 10:39:43 -06:00 committed by Brian Paul
parent 63df017fda
commit 23949cdf2c

View file

@ -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)