diff options
| author | Andrew J. Schorr <ajschorr@alumni.princeton.edu> | 2007-04-15 19:17:24 +0000 | 
|---|---|---|
| committer | Andrew J. Schorr <ajschorr@alumni.princeton.edu> | 2007-04-15 19:17:24 +0000 | 
| commit | 93c1749c828cf750fbcc850730b9f2a872e38325 (patch) | |
| tree | 05800e33ebd68d5e6a2629d20ba54ad4db0aaa7c /bgpd | |
| parent | 6dfa827b7be871fc7301d4db04a99b509c9fd7aa (diff) | |
[bgpd] Minor performance improvement patch
2007-04-15 Sebastien Tandel <sebastien@tandel.be>
	* bgp_aspath.c: (aspath_as_add, aspath_segment_add) Minor performance
	  optimization: while loop should test one pointer instead of two.
Diffstat (limited to 'bgpd')
| -rw-r--r-- | bgpd/ChangeLog | 5 | ||||
| -rw-r--r-- | bgpd/bgp_aspath.c | 21 | 
2 files changed, 16 insertions, 10 deletions
| diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog index 4d6f1ef9..37ca2fb4 100644 --- a/bgpd/ChangeLog +++ b/bgpd/ChangeLog @@ -1,3 +1,8 @@ +2007-04-15 Sebastien Tandel <sebastien@tandel.be> + +	* bgp_aspath.c: (aspath_as_add, aspath_segment_add) Minor performance +	  optimization: while loop should test one pointer instead of two. +  2007-04-08 Paul Jakma <paul.jakma@sun.com>  	* bgp_route.c: (general) Same bug as fixed on 2006-11-28 by ajs for diff --git a/bgpd/bgp_aspath.c b/bgpd/bgp_aspath.c index 327406fa..1f522d79 100644 --- a/bgpd/bgp_aspath.c +++ b/bgpd/bgp_aspath.c @@ -1243,13 +1243,13 @@ aspath_as_add (struct aspath *as, as_t asno)  {    struct assegment *seg = as->segments; -  /* Last segment search procedure. */ -  while (seg && seg->next) -    seg = seg->next; -      if (!seg)      return; +  /* Last segment search procedure. */ +  while (seg->next) +    seg = seg->next; +    assegment_append_asns (seg, &asno, 1);  } @@ -1260,13 +1260,14 @@ aspath_segment_add (struct aspath *as, int type)    struct assegment *seg = as->segments;    struct assegment *new = assegment_new (type, 0); -  while (seg && seg->next) -    seg = seg->next; -   -  if (seg == NULL) -    as->segments = new; +  if (seg) +    { +      while (seg->next) +	seg = seg->next; +      seg->next = new; +    }    else -    seg->next = new; +    as->segments = new;  }  struct aspath * | 
