mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-03 11:01:48 +00:00
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] <jorge@dti2.net> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
parent
1a2fd7078f
commit
b9f1dca10f
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user