mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-09-30 13:24:48 +00:00
d060b7b379
In general, it's fine to pass %NULL to g_free(). However, consider: char * foo (void) { gs_free char *value = NULL; value = g_strdup ("hi"); return g_steal_pointer (&value); } gs_free, gs_local_free(), and g_steal_pointer() are all inlinable. Here the compiler can easily recognize that we always pass %NULL to g_free(). But with the previous implementation, the compiler would not omit the call to g_free(). Similar patterns happen all over the place: gboolean baz (void) { gs_free char *value = NULL; if (!some_check ()) return FALSE; value = get_value (); if (!value) return FALSE; return TRUE; } in this example, g_free() is only required after setting @value to non-NULL. Note that this does increase the binary side a bit (4k for libnm, 8k for NetworkManager, with "-O2"). |
||
---|---|---|
.. | ||
c-list | ||
c-rbtree | ||
c-siphash | ||
n-acd | ||
nm-utils | ||
meson.build | ||
nm-common-macros.h | ||
nm-dbus-compat.h | ||
nm-default.h | ||
nm-dispatcher-api.h | ||
nm-ethtool-utils.c | ||
nm-ethtool-utils.h | ||
nm-meta-setting.c | ||
nm-meta-setting.h | ||
nm-test-libnm-utils.h | ||
nm-test-utils-impl.c | ||
nm-version-macros.h.in |