mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 21:54:01 +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 *attr = *pattr;
|
||||||
struct attr *ret;
|
struct attr *ret;
|
||||||
struct attr tmp;
|
struct attr tmp;
|
||||||
|
struct attr_extra tmp_extra;
|
||||||
|
|
||||||
/* Decrement attribute reference. */
|
/* Decrement attribute reference. */
|
||||||
attr->refcnt--;
|
attr->refcnt--;
|
||||||
@ -665,7 +666,7 @@ bgp_attr_unintern (struct attr **pattr)
|
|||||||
|
|
||||||
if (attr->extra)
|
if (attr->extra)
|
||||||
{
|
{
|
||||||
tmp.extra = bgp_attr_extra_new ();
|
tmp.extra = &tmp_extra;
|
||||||
memcpy (tmp.extra, attr->extra, sizeof (struct attr_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_unintern_sub (&tmp);
|
||||||
bgp_attr_extra_free (&tmp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user