glib: drop compat code for glib < 2.42 from "nm-glib.h"

"nm-glib" h contains compat wrappers for older glib versions. This file
used to be copied over to VPN plugins, to use the same compat code.  It
was thus interesting to also have compat code for glib versions, that
were no longer supported by NetworkManager itself.

This was fine. But glib 2.42 is more than 8 years old. At this point,
there really is no need to support that, even if you copy the file out
of NetworkManager source tree.

Drop those compat wrappers.
This commit is contained in:
Thomas Haller
2023-12-11 11:30:02 +01:00
parent b749c01091
commit 2485a49a0d
6 changed files with 5 additions and 381 deletions

View File

@@ -598,7 +598,7 @@ _peers_add(NMDeviceWireGuard *self, NMWireGuardPeer *peer)
};
c_list_link_tail(&priv->lst_peers_head, &peer_data->lst_peers);
if (!nm_g_hash_table_add(priv->peers, peer_data))
if (!g_hash_table_add(priv->peers, peer_data))
nm_assert_not_reached();
return peer_data;
}

View File

@@ -349,7 +349,7 @@ verify_trunks(GPtrArray *ranges, GError **error)
}
for (vlan = range->start; vlan <= range->end; vlan++) {
if (!nm_g_hash_table_add(h, GUINT_TO_POINTER(vlan))) {
if (!g_hash_table_add(h, GUINT_TO_POINTER(vlan))) {
g_set_error(error,
NM_CONNECTION_ERROR,
NM_CONNECTION_ERROR_INVALID_PROPERTY,

View File

@@ -1318,7 +1318,7 @@ _peers_set(NMSettingWireGuardPrivate *priv,
};
g_ptr_array_add(priv->peers_arr, pd_same_key);
if (!nm_g_hash_table_add(priv->peers_hash, pd_same_key))
if (!g_hash_table_add(priv->peers_hash, pd_same_key))
nm_assert_not_reached();
nm_assert(_peers_get(priv, pd_same_key->idx) == pd_same_key);

View File

@@ -5534,7 +5534,7 @@ _nm_utils_bridge_vlan_verify_list(GPtrArray *vlans,
nm_bridge_vlan_get_vid_range(vlan, &vid_start, &vid_end);
for (v = vid_start; v <= vid_end; v++) {
if (!nm_g_hash_table_add(h, GUINT_TO_POINTER(v))) {
if (!g_hash_table_add(h, GUINT_TO_POINTER(v))) {
g_set_error(error,
NM_CONNECTION_ERROR,
NM_CONNECTION_ERROR_INVALID_PROPERTY,

View File

@@ -29,22 +29,6 @@
/*****************************************************************************/
static inline void
__g_type_ensure(GType type)
{
#if !GLIB_CHECK_VERSION(2, 34, 0)
if (G_UNLIKELY(type == (GType) -1))
g_error("can't happen");
#else
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
g_type_ensure(type);
G_GNUC_END_IGNORE_DEPRECATIONS;
#endif
}
#define g_type_ensure __g_type_ensure
/*****************************************************************************/
/* glib 2.58+ defines an improved, type-safe variant of g_clear_pointer(). Reimplement
* that.
*
@@ -81,71 +65,6 @@ __g_type_ensure(GType type)
/*****************************************************************************/
#if !GLIB_CHECK_VERSION(2, 34, 0)
/* These are used to clean up the output of test programs; we can just let
* them no-op in older glib.
*/
#define g_test_expect_message(log_domain, log_level, pattern)
#define g_test_assert_expected_messages()
#else
/* We build with -DGLIB_MAX_ALLOWED_VERSION set to 2.32 to make sure we don't
* accidentally use new API that we shouldn't. But we don't want warnings for
* the APIs that we emulate above.
*/
#define g_test_expect_message(domain, level, format...) \
G_STMT_START \
{ \
G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
g_test_expect_message(domain, level, format); \
G_GNUC_END_IGNORE_DEPRECATIONS \
} \
G_STMT_END
#define g_test_assert_expected_messages_internal(domain, file, line, func) \
G_STMT_START \
{ \
G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
g_test_assert_expected_messages_internal(domain, file, line, func); \
G_GNUC_END_IGNORE_DEPRECATIONS \
} \
G_STMT_END
#endif
/*****************************************************************************/
#if GLIB_CHECK_VERSION(2, 35, 0)
/* For glib >= 2.36, g_type_init() is deprecated.
* But since 2.35.1 (7c42ab23b55c43ab96d0ac2124b550bf1f49c1ec) this function
* does nothing. Replace the call with empty statement. */
#define nm_g_type_init() \
G_STMT_START \
{ \
(void) 0; \
} \
G_STMT_END
#else
#define nm_g_type_init() \
G_STMT_START \
{ \
g_type_init(); \
} \
G_STMT_END
#endif
/*****************************************************************************/
/* g_test_initialized() is only available since glib 2.36. */
#if !GLIB_CHECK_VERSION(2, 36, 0)
#define g_test_initialized() (g_test_config_vars->test_initialized)
#endif
/*****************************************************************************/
/* g_assert_cmpmem() is only available since glib 2.46. */
#if !GLIB_CHECK_VERSION(2, 45, 7)
#define g_assert_cmpmem(m1, l1, m2, l2) \
@@ -189,136 +108,6 @@ nm_glib_check_version(guint major, guint minor, guint micro)
/*****************************************************************************/
/* g_test_skip() is only available since glib 2.38. Add a compatibility wrapper. */
static inline void
__nmtst_g_test_skip(const char *msg)
{
#if GLIB_CHECK_VERSION(2, 38, 0)
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
g_test_skip(msg);
G_GNUC_END_IGNORE_DEPRECATIONS
#else
g_debug("%s", msg);
#endif
}
#define g_test_skip __nmtst_g_test_skip
/*****************************************************************************/
/* g_test_add_data_func_full() is only available since glib 2.34. Add a compatibility wrapper. */
static inline void
__g_test_add_data_func_full(const char *testpath,
gpointer test_data,
GTestDataFunc test_func,
GDestroyNotify data_free_func)
{
#if GLIB_CHECK_VERSION(2, 34, 0)
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
g_test_add_data_func_full(testpath, test_data, test_func, data_free_func);
G_GNUC_END_IGNORE_DEPRECATIONS
#else
g_return_if_fail(testpath != NULL);
g_return_if_fail(testpath[0] == '/');
g_return_if_fail(test_func != NULL);
g_test_add_vtable(testpath,
0,
test_data,
NULL,
(GTestFixtureFunc) test_func,
(GTestFixtureFunc) data_free_func);
#endif
}
#define g_test_add_data_func_full __g_test_add_data_func_full
/*****************************************************************************/
static inline gboolean
nm_g_hash_table_replace(GHashTable *hash, gpointer key, gpointer value)
{
/* glib 2.40 added a return value indicating whether the key already existed
* (910191597a6c2e5d5d460e9ce9efb4f47d9cc63c). */
#if GLIB_CHECK_VERSION(2, 40, 0)
return g_hash_table_replace(hash, key, value);
#else
gboolean contained = g_hash_table_contains(hash, key);
g_hash_table_replace(hash, key, value);
return !contained;
#endif
}
static inline gboolean
nm_g_hash_table_insert(GHashTable *hash, gpointer key, gpointer value)
{
/* glib 2.40 added a return value indicating whether the key already existed
* (910191597a6c2e5d5d460e9ce9efb4f47d9cc63c). */
#if GLIB_CHECK_VERSION(2, 40, 0)
return g_hash_table_insert(hash, key, value);
#else
gboolean contained = g_hash_table_contains(hash, key);
g_hash_table_insert(hash, key, value);
return !contained;
#endif
}
static inline gboolean
nm_g_hash_table_add(GHashTable *hash, gpointer key)
{
/* glib 2.40 added a return value indicating whether the key already existed
* (910191597a6c2e5d5d460e9ce9efb4f47d9cc63c). */
#if GLIB_CHECK_VERSION(2, 40, 0)
return g_hash_table_add(hash, key);
#else
gboolean contained = g_hash_table_contains(hash, key);
g_hash_table_add(hash, key);
return !contained;
#endif
}
/*****************************************************************************/
#if !GLIB_CHECK_VERSION(2, 40, 0) || defined(NM_GLIB_COMPAT_H_TEST)
static inline void
_nm_g_ptr_array_insert(GPtrArray *array, int index_, gpointer data)
{
g_return_if_fail(array);
g_return_if_fail(index_ >= -1);
g_return_if_fail(index_ <= (int) array->len);
g_ptr_array_add(array, data);
if (index_ != -1 && index_ != (int) (array->len - 1)) {
memmove(&(array->pdata[index_ + 1]),
&(array->pdata[index_]),
(array->len - index_ - 1) * sizeof(gpointer));
array->pdata[index_] = data;
}
}
#endif
#if !GLIB_CHECK_VERSION(2, 40, 0)
#define g_ptr_array_insert(array, index, data) \
G_STMT_START \
{ \
_nm_g_ptr_array_insert(array, index, data); \
} \
G_STMT_END
#else
#define g_ptr_array_insert(array, index, data) \
G_STMT_START \
{ \
G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
g_ptr_array_insert(array, index, data); \
G_GNUC_END_IGNORE_DEPRECATIONS \
} \
G_STMT_END
#endif
/*****************************************************************************/
#if !GLIB_CHECK_VERSION(2, 54, 0)
static inline gboolean
g_ptr_array_find(GPtrArray *haystack, gconstpointer needle, guint *index_)
@@ -346,106 +135,6 @@ g_ptr_array_find(GPtrArray *haystack, gconstpointer needle, guint *index_)
/*****************************************************************************/
#if !GLIB_CHECK_VERSION(2, 40, 0)
static inline gboolean
_g_key_file_save_to_file(GKeyFile *key_file, const char *filename, GError **error)
{
char *contents;
gboolean success;
gsize length;
g_return_val_if_fail(key_file != NULL, FALSE);
g_return_val_if_fail(filename != NULL, FALSE);
g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
contents = g_key_file_to_data(key_file, &length, NULL);
g_assert(contents != NULL);
success = g_file_set_contents(filename, contents, length, error);
g_free(contents);
return success;
}
#define g_key_file_save_to_file(key_file, filename, error) \
_g_key_file_save_to_file(key_file, filename, error)
#else
#define g_key_file_save_to_file(key_file, filename, error) \
({ \
gboolean _success; \
\
G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
_success = g_key_file_save_to_file(key_file, filename, error); \
G_GNUC_END_IGNORE_DEPRECATIONS \
_success; \
})
#endif
/*****************************************************************************/
#if GLIB_CHECK_VERSION(2, 36, 0)
#define g_credentials_get_unix_pid(creds, error) \
({ \
G_GNUC_BEGIN_IGNORE_DEPRECATIONS(g_credentials_get_unix_pid)((creds), (error)); \
G_GNUC_END_IGNORE_DEPRECATIONS \
})
#else
#define g_credentials_get_unix_pid(creds, error) \
({ \
struct ucred *native_creds; \
\
native_creds = g_credentials_get_native((creds), G_CREDENTIALS_TYPE_LINUX_UCRED); \
g_assert(native_creds); \
native_creds->pid; \
})
#endif
/*****************************************************************************/
#if !GLIB_CHECK_VERSION(2, 40, 0) || defined(NM_GLIB_COMPAT_H_TEST)
static inline gpointer *
_nm_g_hash_table_get_keys_as_array(GHashTable *hash_table, guint *length)
{
GHashTableIter iter;
gpointer key, *ret;
guint i = 0;
g_return_val_if_fail(hash_table, NULL);
ret = g_new0(gpointer, g_hash_table_size(hash_table) + 1);
g_hash_table_iter_init(&iter, hash_table);
while (g_hash_table_iter_next(&iter, &key, NULL))
ret[i++] = key;
ret[i] = NULL;
if (length)
*length = i;
return ret;
}
#endif
#if !GLIB_CHECK_VERSION(2, 40, 0)
#define g_hash_table_get_keys_as_array(hash_table, length) \
({ _nm_g_hash_table_get_keys_as_array(hash_table, length); })
#else
#define g_hash_table_get_keys_as_array(hash_table, length) \
({ \
G_GNUC_BEGIN_IGNORE_DEPRECATIONS(g_hash_table_get_keys_as_array) \
((hash_table), (length)); \
G_GNUC_END_IGNORE_DEPRECATIONS \
})
#endif
/*****************************************************************************/
#ifndef g_info
/* g_info was only added with 2.39.2 */
#define g_info(...) g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, __VA_ARGS__)
#endif
/*****************************************************************************/
#ifdef g_steal_pointer
#undef g_steal_pointer
#endif
@@ -486,69 +175,6 @@ _nm_g_strv_contains(const char *const *strv, const char *str)
/*****************************************************************************/
static inline GVariant *
_nm_g_variant_new_take_string(char *string)
{
#if !GLIB_CHECK_VERSION(2, 36, 0)
GVariant *value;
g_return_val_if_fail(string != NULL, NULL);
g_return_val_if_fail(g_utf8_validate(string, -1, NULL), NULL);
value = g_variant_new_string(string);
g_free(string);
return value;
#elif !GLIB_CHECK_VERSION(2, 38, 0)
GVariant *value;
GBytes *bytes;
g_return_val_if_fail(string != NULL, NULL);
g_return_val_if_fail(g_utf8_validate(string, -1, NULL), NULL);
bytes = g_bytes_new_take(string, strlen(string) + 1);
value = g_variant_new_from_bytes(G_VARIANT_TYPE_STRING, bytes, TRUE);
g_bytes_unref(bytes);
return value;
#else
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
return g_variant_new_take_string(string);
G_GNUC_END_IGNORE_DEPRECATIONS
#endif
}
#define g_variant_new_take_string _nm_g_variant_new_take_string
/*****************************************************************************/
#if !GLIB_CHECK_VERSION(2, 38, 0)
_nm_printf(1, 2) static inline GVariant *_nm_g_variant_new_printf(const char *format_string, ...)
{
char *string;
va_list ap;
g_return_val_if_fail(format_string, NULL);
va_start(ap, format_string);
string = g_strdup_vprintf(format_string, ap);
va_end(ap);
return g_variant_new_take_string(string);
}
#define g_variant_new_printf(...) _nm_g_variant_new_printf(__VA_ARGS__)
#else
#define g_variant_new_printf(...) \
({ \
GVariant *_v; \
\
G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
_v = g_variant_new_printf(__VA_ARGS__); \
G_GNUC_END_IGNORE_DEPRECATIONS \
_v; \
})
#endif
/*****************************************************************************/
/* Recent glib also casts the results to typeof(Obj), but only if
*
* ( defined(g_has_typeof) && GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_56 )

View File

@@ -497,8 +497,6 @@ __nmtst_init(int *argc,
__nmtst_internal.assert_logging = !!assert_logging;
nm_g_type_init();
is_debug = g_test_verbose();
nmtst_debug = g_getenv("NMTST_DEBUG");
@@ -2605,7 +2603,7 @@ _nmtst_assert_connection_has_settings(NMConnection *connection,
va_start(ap, has_at_most);
while ((name = va_arg(ap, const char *))) {
if (!nm_g_hash_table_add(names, (gpointer) name))
if (!g_hash_table_add(names, (gpointer) name))
g_assert_not_reached();
g_ptr_array_add(names_arr, (gpointer) name);
}