diff options
author | battre <battre@chromium.org> | 2015-12-16 19:59:03 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-17 03:59:56 +0000 |
commit | 2bf80eeab7c142f91d45b46504b4485934e29512 (patch) | |
tree | 5d5168986b00288571236f08b10fbd89df7ace32 /third_party/re2/util/logging.h | |
parent | 0b9dbdd4cb09836efadb090edf7d981fb438cf50 (diff) | |
download | chromium_src-2bf80eeab7c142f91d45b46504b4485934e29512.zip chromium_src-2bf80eeab7c142f91d45b46504b4485934e29512.tar.gz chromium_src-2bf80eeab7c142f91d45b46504b4485934e29512.tar.bz2 |
Update re2 to tip of tree.
This version does not require any Chrome specific patches anymore.
This is an update of https://crrev.com/fd270ec705a75fd4e0883d091d9cf5204918c858
BUG=568119
R=thakis@chromium.org,tfarina@chromium.org
Review URL: https://codereview.chromium.org/1529143002
Cr-Commit-Position: refs/heads/master@{#365736}
Diffstat (limited to 'third_party/re2/util/logging.h')
-rw-r--r-- | third_party/re2/util/logging.h | 54 |
1 files changed, 36 insertions, 18 deletions
diff --git a/third_party/re2/util/logging.h b/third_party/re2/util/logging.h index d0a2d87..feac199 100644 --- a/third_party/re2/util/logging.h +++ b/third_party/re2/util/logging.h @@ -7,13 +7,13 @@ #ifndef RE2_UTIL_LOGGING_H__ #define RE2_UTIL_LOGGING_H__ -#ifndef WIN32 -#include <unistd.h> /* for write */ -#endif +#include <stdio.h> /* for fwrite */ #include <sstream> -#ifdef WIN32 -#include <io.h> -#endif + +#include "util/util.h" +#include "util/flags.h" + +DECLARE_int32(minloglevel); // Debug-only checking. #define DCHECK(condition) assert(condition) @@ -33,13 +33,16 @@ #define CHECK_EQ(x, y) CHECK((x) == (y)) #define CHECK_NE(x, y) CHECK((x) != (y)) -#define LOG_INFO LogMessage(__FILE__, __LINE__) -#define LOG_ERROR LOG_INFO -#define LOG_WARNING LOG_INFO +#define LOG_INFO LogMessage(__FILE__, __LINE__, 0) +#define LOG_WARNING LogMessage(__FILE__, __LINE__, 1) +#define LOG_ERROR LogMessage(__FILE__, __LINE__, 2) #define LOG_FATAL LogMessageFatal(__FILE__, __LINE__) #define LOG_QFATAL LOG_FATAL -#define VLOG(x) if((x)>0){}else LOG_INFO.stream() +// It seems that one of the Windows header files defines ERROR as 0. +#ifdef _WIN32 +#define LOG_0 LOG_INFO +#endif #ifdef NDEBUG #define DEBUG_MODE 0 @@ -51,16 +54,21 @@ #define LOG(severity) LOG_ ## severity.stream() +#define VLOG(x) if((x)>0){}else LOG_INFO.stream() + class LogMessage { public: - LogMessage(const char* file, int line) : flushed_(false) { + LogMessage(const char* file, int line, int severity) + : severity_(severity), flushed_(false) { stream() << file << ":" << line << ": "; } void Flush() { stream() << "\n"; - string s = str_.str(); - int n = (int)s.size(); // shut up msvc - if(write(2, s.data(), n) < 0) {} // shut up gcc + if (severity_ >= re2::FLAGS_minloglevel) { + string s = str_.str(); + size_t n = s.size(); + if (fwrite(s.data(), 1, n, stderr) < n) {} // shut up gcc + } flushed_ = true; } ~LogMessage() { @@ -69,23 +77,33 @@ class LogMessage { } } ostream& stream() { return str_; } - + private: + const int severity_; bool flushed_; std::ostringstream str_; - DISALLOW_EVIL_CONSTRUCTORS(LogMessage); + DISALLOW_COPY_AND_ASSIGN(LogMessage); }; +#ifdef _WIN32 +#pragma warning(push) +#pragma warning(disable: 4722) // destructor never returns +#endif + class LogMessageFatal : public LogMessage { public: LogMessageFatal(const char* file, int line) - : LogMessage(file, line) { } + : LogMessage(file, line, 3) {} ~LogMessageFatal() { Flush(); abort(); } private: - DISALLOW_EVIL_CONSTRUCTORS(LogMessageFatal); + DISALLOW_COPY_AND_ASSIGN(LogMessageFatal); }; +#ifdef _WIN32 +#pragma warning(pop) +#endif + #endif // RE2_UTIL_LOGGING_H__ |