summaryrefslogtreecommitdiff
path: root/libnm-core/nm-connection.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-core/nm-connection.c')
-rw-r--r--libnm-core/nm-connection.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/libnm-core/nm-connection.c b/libnm-core/nm-connection.c
index d95e11583a..b2c4d4eea0 100644
--- a/libnm-core/nm-connection.c
+++ b/libnm-core/nm-connection.c
@@ -2253,13 +2253,19 @@ nm_connection_private_free (NMConnectionPrivate *priv)
static NMConnectionPrivate *
nm_connection_get_private (NMConnection *connection)
{
+ static GQuark key = 0;
NMConnectionPrivate *priv;
- priv = g_object_get_data (G_OBJECT (connection), "NMConnectionPrivate");
+ nm_assert (NM_IS_CONNECTION (connection));
+
+ if (G_UNLIKELY (key == 0))
+ key = g_quark_from_static_string ("NMConnectionPrivate");
+
+ priv = g_object_get_qdata ((GObject *) connection, key);
if (!priv) {
priv = g_slice_new0 (NMConnectionPrivate);
- g_object_set_data_full (G_OBJECT (connection), "NMConnectionPrivate",
- priv, (GDestroyNotify) nm_connection_private_free);
+ g_object_set_qdata_full ((GObject *) connection, key,
+ priv, (GDestroyNotify) nm_connection_private_free);
priv->self = connection;
priv->settings = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_object_unref);