diff options
-rw-r--r-- | third_party/tcmalloc/chromium/src/base/logging.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/third_party/tcmalloc/chromium/src/base/logging.h b/third_party/tcmalloc/chromium/src/base/logging.h index 5b5b5db..02f84f4 100644 --- a/third_party/tcmalloc/chromium/src/base/logging.h +++ b/third_party/tcmalloc/chromium/src/base/logging.h @@ -56,6 +56,10 @@ // do logging on a best-effort basis. #if defined(_MSC_VER) #define WRITE_TO_STDERR(buf, len) WriteToStderr(buf, len); // in port.cc +#elif defined(__ANDROID__) || defined(ANDROID) +#include <android/log.h> +#define WRITE_TO_STDERR(buf, len) \ + __android_log_write(ANDROID_LOG_ERROR, "gperftools", buf) #elif defined(HAVE_SYS_SYSCALL_H) #include <sys/syscall.h> #define WRITE_TO_STDERR(buf, len) syscall(SYS_write, STDERR_FILENO, buf, len) @@ -204,7 +208,30 @@ inline void LogPrintf(int severity, const char* pat, va_list ap) { assert(strlen(buf)+1 < sizeof(buf)); strcat(buf, "\n"); } +#if defined(__ANDROID__) || defined(ANDROID) + android_LogPriority priority = ANDROID_LOG_UNKNOWN; + switch (severity) { + case INFO: { + priority = ANDROID_LOG_INFO; + break; + } + case WARNING: { + priority = ANDROID_LOG_WARN; + break; + } + case ERROR: { + priority = ANDROID_LOG_ERROR; + break; + } + case FATAL: { + priority = ANDROID_LOG_FATAL; + break; + } + } + __android_log_write(priority, "gperftools", buf); +#else // defined(__ANDROID__) || defined(ANDROID) WRITE_TO_STDERR(buf, strlen(buf)); +#endif // defined(__ANDROID__) || defined(ANDROID) if ((severity) == FATAL) { // LOG(FATAL) indicates a big problem, so don't run atexit() calls tcmalloc::Abort(); |