glapi: add function to find extension by name
authorGeorge Sapountzis <gsapountzis@gmail.com>
Sun, 7 Mar 2010 21:04:52 +0000 (23:04 +0200)
committerGeorge Sapountzis <gsapountzis@gmail.com>
Wed, 10 Mar 2010 16:44:44 +0000 (18:44 +0200)
src/mesa/glapi/glapi_getproc.c

index 0d9358ce4150c88cb0ef16908e131bacac0df699..4205435da51c077d208512f1e986c7c80cc76f21 100644 (file)
@@ -199,29 +199,40 @@ static struct _glapi_function ExtEntryTable[MAX_EXTENSION_FUNCS];
 static GLuint NumExtEntryPoints = 0;
 
 
-static GLint
-get_extension_proc_offset(const char *funcName)
+static struct _glapi_function *
+get_extension_proc(const char *funcName)
 {
    GLuint i;
    for (i = 0; i < NumExtEntryPoints; i++) {
       if (strcmp(ExtEntryTable[i].name, funcName) == 0) {
-         return ExtEntryTable[i].dispatch_offset;
+         return & ExtEntryTable[i];
       }
    }
-   return -1;
+   return NULL;
+}
+
+
+static GLint
+get_extension_proc_offset(const char *funcName)
+{
+   const struct _glapi_function * const f = get_extension_proc( funcName );
+   if (f == NULL) {
+      return -1;
+   }
+
+   return f->dispatch_offset;
 }
 
 
 static _glapi_proc
 get_extension_proc_address(const char *funcName)
 {
-   GLuint i;
-   for (i = 0; i < NumExtEntryPoints; i++) {
-      if (strcmp(ExtEntryTable[i].name, funcName) == 0) {
-         return ExtEntryTable[i].dispatch_stub;
-      }
+   const struct _glapi_function * const f = get_extension_proc( funcName );
+   if (f == NULL) {
+      return NULL;
    }
-   return NULL;
+
+   return f->dispatch_stub;
 }