[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.
diff --git a/bgpd/bgp_aspath.c b/bgpd/bgp_aspath.c
index 327406f..1f522d7 100644
--- a/bgpd/bgp_aspath.c
+++ b/bgpd/bgp_aspath.c
@@ -1243,13 +1243,13 @@
{
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 @@
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 *