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 33 int
34 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 41 HttpHeader
42 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 48 return (NULL != found)? *found : NULL;
53 49 }
... ...
Please register or login to post a comment