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:
committed by
Brian Paul
parent
63df017fda
commit
23949cdf2c
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user