- for (i = 0; i < DI_FUNCTION_COUNT; i++) {
- if (strcmp((const char *) name, __glXDispatchTableStrings[i]) == 0)
- return i;
- }
- return -1;
+static unsigned FindGLXFunction(const GLubyte *name)
+{
+ const char **match;
+
+ match = bsearch(name, __glXDispatchTableStrings, DI_FUNCTION_COUNT,
+ sizeof(const char *), compare);
+
+ if (match == NULL)
+ return DI_FUNCTION_COUNT;
+
+ return match - __glXDispatchTableStrings;