summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/devices/nm-device.c15
-rw-r--r--src/devices/nm-device.h2
2 files changed, 11 insertions, 6 deletions
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
index 8168957dd4..ce144c3b08 100644
--- a/src/devices/nm-device.c
+++ b/src/devices/nm-device.c
@@ -269,7 +269,6 @@ typedef struct _NMDevicePrivate {
int ip_ifindex;
NMDeviceType type;
char * type_desc;
- char * type_description;
NMLinkType link_type;
NMDeviceCapabilities capabilities;
char * driver;
@@ -1988,18 +1987,23 @@ nm_device_get_type_description (NMDevice *self)
static const char *
get_type_description (NMDevice *self)
{
- NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self);
+ NMDeviceClass *klass;
- if (!priv->type_description) {
+ nm_assert (NM_IS_DEVICE (self));
+
+ klass = NM_DEVICE_GET_CLASS (self);
+ if (G_UNLIKELY (!klass->default_type_description)) {
const char *typename;
+ gs_free char *s = NULL;
typename = G_OBJECT_TYPE_NAME (self);
if (g_str_has_prefix (typename, "NMDevice"))
typename += 8;
- priv->type_description = g_ascii_strdown (typename, -1);
+ s = g_ascii_strdown (typename, -1);
+ klass->default_type_description = g_intern_string (s);
}
- return priv->type_description;
+ return klass->default_type_description;
}
gboolean
@@ -14581,7 +14585,6 @@ finalize (GObject *object)
g_free (priv->driver_version);
g_free (priv->firmware_version);
g_free (priv->type_desc);
- g_free (priv->type_description);
g_free (priv->dhcp_anycast_address);
g_free (priv->current_stable_id);
diff --git a/src/devices/nm-device.h b/src/devices/nm-device.h
index abb2420c14..8c823bab4d 100644
--- a/src/devices/nm-device.h
+++ b/src/devices/nm-device.h
@@ -192,6 +192,8 @@ typedef enum { /*< skip >*/
typedef struct {
NMExportedObjectClass parent;
+ const char *default_type_description;
+
const char *connection_type;
const NMLinkType *link_types;