wgl: Optimize wglGetProcAddress.
authorJosé Fonseca <jfonseca@vmware.com>
Wed, 1 Jul 2009 09:03:59 +0000 (10:03 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Wed, 1 Jul 2009 09:03:59 +0000 (10:03 +0100)
Do linear search only if prefix matches.

src/gallium/state_trackers/wgl/shared/stw_getprocaddress.c

index 4070cbd5c0097ed1a331fd477edb5c3a3b9b6771..8cacbb89266a518ec5b64b86ce6b7aa72497acda 100644 (file)
@@ -65,13 +65,13 @@ stw_get_proc_address(
 {
    const struct stw_extension_entry *entry;
 
-   PROC p = (PROC) _glapi_get_proc_address( lpszProc );
-   if (p)
-      return p;
+   if (lpszProc[0] == 'w' && lpszProc[1] == 'g' && lpszProc[2] == 'l')
+      for (entry = stw_extension_entries; entry->name; entry++)
+         if (strcmp( lpszProc, entry->name ) == 0)
+            return entry->proc;
 
-   for (entry = stw_extension_entries; entry->name; entry++)
-      if (strcmp( lpszProc, entry->name ) == 0)
-         return entry->proc;
+   if (lpszProc[0] == 'g' && lpszProc[1] == 'l')
+        return (PROC) _glapi_get_proc_address( lpszProc );
 
    return NULL;
 }