mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-20 19:50:07 +01:00
libnm: copy list of property-infos instead of keeping buffer from GArray
We use the "properties_override" GArray to construct the list of property infos. But as we append values to the GArray, the buffer grows exponentially and likely is larger than the actually used number of values. As this data is kept until the end of the program, let's not waste the over-allocated memory and instead copy it to a buffer of the right size.
This commit is contained in:
parent
a1b575b07b
commit
133f23d39e
1 changed files with 4 additions and 2 deletions
|
|
@ -442,13 +442,15 @@ has_property_type:
|
|||
sett_info->setting_class = setting_class;
|
||||
if (detail)
|
||||
sett_info->detail = *detail;
|
||||
nm_assert (properties_override->len > 0);
|
||||
sett_info->property_infos_len = properties_override->len;
|
||||
sett_info->property_infos = (const NMSettInfoProperty *) g_array_free (properties_override,
|
||||
properties_override->len == 0);
|
||||
sett_info->property_infos = nm_memdup (properties_override->data, sizeof (NMSettInfoProperty) * properties_override->len);
|
||||
|
||||
sett_info->property_infos_sorted = _property_infos_sort (sett_info->property_infos,
|
||||
sett_info->property_infos_len,
|
||||
setting_class);
|
||||
|
||||
g_array_free (properties_override, TRUE);
|
||||
}
|
||||
|
||||
const NMSettInfoProperty *
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue