| 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 dec111e7fe58e8b334c2fd01dac0a1a40692c01c..b819ec204804e656f76a45a699e5b69fd1a629d5 100644
|
| --- a/third_party/crashpad/crashpad/util/thread/thread_log_messages.cc
|
| +++ b/third_party/crashpad/crashpad/util/thread/thread_log_messages.cc
|
| @@ -34,36 +34,29 @@ namespace {
|
| //
|
| // Practically, the only object of this class that might exist is managed by the
|
| // g_master lazy instance, which will create it upon first use.
|
| -class ThreadLogMessagesMaster {
|
| +class ThreadLogMessagesMaster : logging::LogMessageListener {
|
| public:
|
| ThreadLogMessagesMaster() {
|
| 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) {
|
| + // logging::LogMessageListener
|
| + void OnMessage(logging::LogSeverity severity,
|
| + const char* file_path,
|
| + int line,
|
| + size_t message_start,
|
| + const std::string& string) override {
|
| std::vector<std::string>* log_messages =
|
| reinterpret_cast<std::vector<std::string>*>(tls_.Get());
|
| if (log_messages) {
|
| @@ -72,9 +65,9 @@ class ThreadLogMessagesMaster {
|
|
|
| // Don’t consume the message. Allow it to be logged as if nothing was set as
|
| // the log message handler.
|
| - return false;
|
| }
|
|
|
| + private:
|
| static base::ThreadLocalStorage::StaticSlot tls_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ThreadLogMessagesMaster);
|
|
|