Commit e4975a92c016a82d327283ec6181efa005e66b56

Authored by Georg Hopp
1 parent 9f801ba4

optmize header search

Showing 1 changed file with 5 additions and 9 deletions
@@ -33,21 +33,17 @@ inline @@ -33,21 +33,17 @@ inline
33 int 33 int
34 comp(const void * _a, const void * _b) 34 comp(const void * _a, const void * _b)
35 { 35 {
36 - HttpHeader a = (HttpHeader)_a;  
37 - HttpHeader b = (HttpHeader)_b;  
38 - return (a->hash < b->hash)? -1 : (a->hash > b->hash)? 1 : 0; 36 + const unsigned long * a = _a;
  37 + HttpHeader b = (HttpHeader)_b;
  38 + return (*a < b->hash)? -1 : (*a > b->hash)? 1 : 0;
39 } 39 }
40 40
41 HttpHeader 41 HttpHeader
42 httpHeaderGet(const HttpHeader * root, const char * name, size_t nname) 42 httpHeaderGet(const HttpHeader * root, const char * name, size_t nname)
43 { 43 {
44 - struct c_HttpHeader search = {  
45 - sdbm((const unsigned char*)name, nname),  
46 - NULL,  
47 - {},  
48 - 0}; 44 + unsigned long hash = sdbm((const unsigned char*)name, nname);
49 45
50 - HttpHeader * found = tfind(&search, (void**)root, comp); 46 + HttpHeader * found = tfind(&hash, (void**)root, comp);
51 47
52 return (NULL != found)? *found : NULL; 48 return (NULL != found)? *found : NULL;
53 } 49 }
Please register or login to post a comment