From b9f1dca10f9a9bf853a9999a117c8cdeec5b7b69 Mon Sep 17 00:00:00 2001 From: "Jorge Boncompte [DTI2]" Date: Mon, 7 May 2012 16:53:01 +0000 Subject: bgpd: use on stack struct attr_extra in bgp_attr_unintern() Reduce memory heap fragmentation and pressure on the memory allocator. Signed-off-by: Jorge Boncompte [DTI2] Signed-off-by: David Lamparter --- bgpd/bgp_attr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'bgpd/bgp_attr.c') diff --git a/bgpd/bgp_attr.c b/bgpd/bgp_attr.c index 97497821..b63ac4c8 100644 --- a/bgpd/bgp_attr.c +++ b/bgpd/bgp_attr.c @@ -657,6 +657,7 @@ bgp_attr_unintern (struct attr **pattr) struct attr *attr = *pattr; struct attr *ret; struct attr tmp; + struct attr_extra tmp_extra; /* Decrement attribute reference. */ attr->refcnt--; @@ -665,7 +666,7 @@ bgp_attr_unintern (struct attr **pattr) if (attr->extra) { - tmp.extra = bgp_attr_extra_new (); + tmp.extra = &tmp_extra; memcpy (tmp.extra, attr->extra, sizeof (struct attr_extra)); } @@ -680,7 +681,6 @@ bgp_attr_unintern (struct attr **pattr) } bgp_attr_unintern_sub (&tmp); - bgp_attr_extra_free (&tmp); } void -- cgit v1.2.1