Fixed a memory leak from the thread name.
Change-Id: I291c16b54b48bddf9240c8aecc7261030fae3466
diff --git a/aos/common/logging/logging_impl.cc b/aos/common/logging/logging_impl.cc
index 724d4b8..c776991 100644
--- a/aos/common/logging/logging_impl.cc
+++ b/aos/common/logging/logging_impl.cc
@@ -80,8 +80,8 @@
message->level = level;
message->source = context->source;
- memcpy(message->name, context->name.c_str(), context->name.size());
- message->name_length = context->name.size();
+ memcpy(message->name, context->name, context->name_size);
+ message->name_length = context->name_size;
time::Time now = time::Time::Now();
message->seconds = now.sec();
diff --git a/aos/common/logging/logging_impl.h b/aos/common/logging/logging_impl.h
index 35e24a0..367c1a1 100644
--- a/aos/common/logging/logging_impl.h
+++ b/aos/common/logging/logging_impl.h
@@ -281,8 +281,8 @@
LogImplementation *implementation;
// A name representing this task/(process and thread).
- // strlen(name.c_str()) must be <= sizeof(LogMessage::name).
- ::std::string name;
+ char name[sizeof(LogMessage::name)];
+ size_t name_size;
// What to assign LogMessage::source to in this task/thread.
pid_t source;
diff --git a/aos/common/logging/logging_impl_test.cc b/aos/common/logging/logging_impl_test.cc
index 8331c37..d426112 100644
--- a/aos/common/logging/logging_impl_test.cc
+++ b/aos/common/logging/logging_impl_test.cc
@@ -63,13 +63,13 @@
static_cast<uint32_t>(log_implementation->message().source),
static_cast<uint32_t>(context->source));
}
- if (log_implementation->message().name_length != context->name.size() ||
- memcmp(log_implementation->message().name, context->name.c_str(),
- context->name.size()) !=
+ if (log_implementation->message().name_length != context->name_size ||
+ memcmp(log_implementation->message().name, context->name,
+ context->name_size) !=
0) {
LOG(FATAL, "got a message from %.*s, but we're %s\n",
static_cast<int>(log_implementation->message().name_length),
- log_implementation->message().name, context->name.c_str());
+ log_implementation->message().name, context->name);
}
if (strstr(log_implementation->message().message, message.c_str())
== NULL) {