diff options
| author | Paul Jakma <paul@quagga.net> | 2010-01-24 21:41:02 +0000 | 
|---|---|---|
| committer | Denis Ovsienko <infrastation@yandex.ru> | 2011-08-01 15:28:24 +0400 | 
| commit | e9e42170c63efcdb14b9389f481f2fa8fcb4092a (patch) | |
| tree | 200a24e16e20ecdf6e1b614d8d62436e52bcc6f5 | |
| parent | a8b79422aadf5dc821af6699e468379002cc61f9 (diff) | |
lib: prefix.c nano-optimisation
* lib/prefix.c: (prefix_match) nano-optimisation, let it return early
  without copying pointers.
| -rw-r--r-- | lib/prefix.c | 9 | 
1 files changed, 5 insertions, 4 deletions
| diff --git a/lib/prefix.c b/lib/prefix.c index 7dc866d1..61a278ca 100644 --- a/lib/prefix.c +++ b/lib/prefix.c @@ -70,15 +70,16 @@ prefix_match (const struct prefix *n, const struct prefix *p)  {    int offset;    int shift; - -  /* Set both prefix's head pointer. */ -  const u_char *np = (const u_char *)&n->u.prefix; -  const u_char *pp = (const u_char *)&p->u.prefix; +  const u_char *np, *pp;    /* If n's prefix is longer than p's one return 0. */    if (n->prefixlen > p->prefixlen)      return 0; +  /* Set both prefix's head pointer. */ +  np = (const u_char *)&n->u.prefix; +  pp = (const u_char *)&p->u.prefix; +      offset = n->prefixlen / PNBBY;    shift =  n->prefixlen % PNBBY; | 
