From 42ead8826608f39491020863f4a4593918e3ae06 Mon Sep 17 00:00:00 2001 From: "Maciej S. Szmigiero" Date: Sat, 22 Feb 2025 11:04:42 +0100 Subject: log-object: Add possibility to reset logger id Logger id (the one generated from build_id interface method and owner_id property) is generated and cached the first time it is required, further uses just return the cached value. Add a cache reset method so if the interface implementer knows that its logger id could have changed it could force its re-generation. Signed-off-by: Maciej S. Szmigiero --- src/mm-log-object.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/mm-log-object.c') diff --git a/src/mm-log-object.c b/src/mm-log-object.c index ed41355f..b5e390f1 100644 --- a/src/mm-log-object.c +++ b/src/mm-log-object.c @@ -81,6 +81,17 @@ mm_log_object_set_owner_id (MMLogObject *self, priv = get_private (self); g_free (priv->owner_id); priv->owner_id = g_strdup (owner_id); + + mm_log_object_reset_id (self); +} + +void +mm_log_object_reset_id (MMLogObject *self) +{ + Private *priv; + + priv = get_private (self); + g_clear_pointer (&priv->id, g_free); } static void -- cgit v1.2.3-70-g09d2 From b24615d8018c7cd78a744db0372c09c07543b763 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Tue, 13 May 2025 10:33:07 -0500 Subject: log-object: don't construct log ID with NULL self_id If the object has an owner ID already but doesn't yet have enough information to build its log ID, don't cache a less-than-useful log ID string for it. Signed-off-by: Dan Williams --- src/mm-log-object.c | 2 +- src/mm-port.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'src/mm-log-object.c') diff --git a/src/mm-log-object.c b/src/mm-log-object.c index b5e390f1..64e4b407 100644 --- a/src/mm-log-object.c +++ b/src/mm-log-object.c @@ -63,7 +63,7 @@ mm_log_object_get_id (MMLogObject *self) gchar *self_id; self_id = MM_LOG_OBJECT_GET_IFACE (self)->build_id (self); - if (priv->owner_id) { + if (self_id && priv->owner_id) { priv->id = g_strdup_printf ("%s/%s", priv->owner_id, self_id); g_free (self_id); } else diff --git a/src/mm-port.c b/src/mm-port.c index da37f902..7102770d 100644 --- a/src/mm-port.c +++ b/src/mm-port.c @@ -132,6 +132,9 @@ log_object_build_id (MMLogObject *_self) MMPort *self; self = MM_PORT (_self); + if (!self->priv->device || !self->priv->ptype) + return NULL; + return g_strdup_printf ("%s/%s", mm_port_get_device (self), mm_port_type_get_string (mm_port_get_port_type (self))); -- cgit v1.2.3-70-g09d2