X-Git-Url: https://git.draconx.ca/gitweb/upkg.git/blobdiff_plain/d42bc5c2d8dcf388b424c5bbc4b6f25416f689f1..687c74b6b8cc9eb6015c279a0c757ca3c0047697:/src/uobject/uobject.c diff --git a/src/uobject/uobject.c b/src/uobject/uobject.c index 331b8ae..360dd31 100644 --- a/src/uobject/uobject.c +++ b/src/uobject/uobject.c @@ -612,18 +612,20 @@ static char *prepend_fmt(const char *prefix, const char *fmt) /* Logging helpers that automatically prepend the UObject class information. */ void u_vlog_full(GObject *o, GLogLevelFlags level, const char *fmt, va_list ap) { - g_return_if_fail(IS_U_OBJECT(o)); - UObject *uo = U_OBJECT(o); - char *new_fmt = NULL; - - if (uo->pkg_name) { - new_fmt = prepend_fmt(uo->pkg_name, fmt); - if (!new_fmt) { - g_log(G_OBJECT_TYPE_NAME(o), level, "%s", - uo->pkg_file->name); - } else { + char *new_fmt = NULL, *obj_prefix = NULL; + + if (IS_U_OBJECT(o)) { + obj_prefix = U_OBJECT(o)->pkg_name; + } else if (G_IS_TYPE_MODULE(o)) { + obj_prefix = G_TYPE_MODULE(o)->name; + } + + if (obj_prefix) { + new_fmt = prepend_fmt(obj_prefix, fmt); + if (!new_fmt) + g_log(G_OBJECT_TYPE_NAME(o), level, "%s", obj_prefix); + else fmt = new_fmt; - } } g_logv(G_OBJECT_TYPE_NAME(o), level, fmt, ap);