diff --git a/repos/base/src/core/include/log_root.h b/repos/base/src/core/include/log_root.h index db98ebfc5..085c6053f 100644 --- a/repos/base/src/core/include/log_root.h +++ b/repos/base/src/core/include/log_root.h @@ -30,12 +30,7 @@ namespace Genode { */ Log_session_component *_create_session(const char *args) override { - char label_buf[Log_session_component::LABEL_LEN]; - - Arg label_arg = Arg_string::find_arg(args, "label"); - label_arg.string(label_buf, sizeof(label_buf), ""); - - return new (md_alloc()) Log_session_component(label_buf); + return new (md_alloc()) Log_session_component(label_from_args(args)); } public: diff --git a/repos/base/src/core/include/log_session_component.h b/repos/base/src/core/include/log_session_component.h index 7b6ddab81..1e7ec9d02 100644 --- a/repos/base/src/core/include/log_session_component.h +++ b/repos/base/src/core/include/log_session_component.h @@ -17,27 +17,23 @@ #include #include #include +#include #include namespace Genode { class Log_session_component : public Rpc_object { - public: - - enum { LABEL_LEN = 128 }; - private: - char _label[LABEL_LEN]; + Session_label const _label; public: /** * Constructor */ - Log_session_component(const char *label) { - strncpy(_label, label, sizeof(_label)); } + Log_session_component(Session_label const &label) : _label(label) { } /***************** @@ -61,14 +57,14 @@ namespace Genode { if (string[i] == '\n') { memcpy(buf, string + from_i, i - from_i); buf[i - from_i] = 0; - log("[", Cstring(_label), "] ", Cstring(buf)); + log("[", _label, "] ", Cstring(buf)); from_i = i + 1; } } /* if last character of string was not a line break, add one */ if (from_i < len) - log("[", Cstring(_label), "] ", Cstring(string + from_i)); + log("[", _label, "] ", Cstring(string + from_i)); return len; }