Index: third_party/crashpad/crashpad/util/thread/thread_log_messages.cc |
diff --git a/third_party/crashpad/crashpad/util/thread/thread_log_messages.cc b/third_party/crashpad/crashpad/util/thread/thread_log_messages.cc |
index 7f67e458379bdda2a73498f1c7cbe28d05113b20..c7057fcd4c1dfbf49863bd9335ea6540861ed8f1 100644 |
--- a/third_party/crashpad/crashpad/util/thread/thread_log_messages.cc |
+++ b/third_party/crashpad/crashpad/util/thread/thread_log_messages.cc |
@@ -36,34 +36,27 @@ namespace { |
// g_master lazy instance, which will create it upon first use. |
class ThreadLogMessagesMaster { |
public: |
- ThreadLogMessagesMaster() { |
+ ThreadLogMessagesMaster(): listener(LogMessageListener) { |
DCHECK(!tls_.initialized()); |
tls_.Initialize(nullptr); |
DCHECK(tls_.initialized()); |
- |
- DCHECK(!logging::GetLogMessageHandler()); |
- logging::SetLogMessageHandler(LogMessageHandler); |
} |
~ThreadLogMessagesMaster() { |
- DCHECK_EQ(logging::GetLogMessageHandler(), LogMessageHandler); |
- logging::SetLogMessageHandler(nullptr); |
- |
tls_.Free(); |
} |
void SetThreadMessageList(std::vector<std::string>* message_list) { |
- DCHECK_EQ(logging::GetLogMessageHandler(), LogMessageHandler); |
DCHECK_NE(tls_.Get() != nullptr, message_list != nullptr); |
tls_.Set(message_list); |
} |
private: |
- static bool LogMessageHandler(logging::LogSeverity severity, |
- const char* file_path, |
- int line, |
- size_t message_start, |
- const std::string& string) { |
+ static void LogMessageListener(logging::LogSeverity severity, |
+ const char* file_path, |
+ int line, |
+ size_t message_start, |
+ const std::string& string) { |
std::vector<std::string>* log_messages = |
reinterpret_cast<std::vector<std::string>*>(tls_.Get()); |
if (log_messages) { |
@@ -72,11 +65,12 @@ class ThreadLogMessagesMaster { |
// Don’t consume the message. Allow it to be logged as if nothing was set as |
// the log message handler. |
- return false; |
} |
static base::ThreadLocalStorage::StaticSlot tls_; |
+ logging::ScopedLogMessageListener listener; |
+ |
DISALLOW_COPY_AND_ASSIGN(ThreadLogMessagesMaster); |
}; |