Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1631)

Unified Diff: third_party/protobuf/src/google/protobuf/stubs/common.cc

Issue 2756543002: Statically link libprotobuf_lite on Linux component builds (Closed)
Patch Set: Extract all global data to globals.cc Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/protobuf/src/google/protobuf/stubs/common.cc
diff --git a/third_party/protobuf/src/google/protobuf/stubs/common.cc b/third_party/protobuf/src/google/protobuf/stubs/common.cc
index 54dbafab5dcaca22cc2658a1682b5ef553dff595..bcd45ec4e21689100fd77f32bb323c19eed8b3ea 100644
--- a/third_party/protobuf/src/google/protobuf/stubs/common.cc
+++ b/third_party/protobuf/src/google/protobuf/stubs/common.cc
@@ -116,7 +116,8 @@ inline void DefaultLogHandler(LogLevel level, const char* filename, int line,
if (level < GOOGLE_PROTOBUF_MIN_LOG_LEVEL) {
return;
}
- static const char* level_names[] = {"INFO", "WARNING", "ERROR", "FATAL"};
+ static const char* const level_names[] = {"INFO", "WARNING", "ERROR",
+ "FATAL"};
static const int android_log_levels[] = {
ANDROID_LOG_INFO, // LOG(INFO),
@@ -148,7 +149,8 @@ inline void DefaultLogHandler(LogLevel level, const char* filename, int line,
#else
void DefaultLogHandler(LogLevel level, const char* filename, int line,
const string& message) {
- static const char* level_names[] = { "INFO", "WARNING", "ERROR", "FATAL" };
+ static const char* const level_names[] = {"INFO", "WARNING", "ERROR",
+ "FATAL"};
// We use fprintf() instead of cerr because we want this to work at static
// initialization time.
@@ -163,22 +165,22 @@ void NullLogHandler(LogLevel /* level */, const char* /* filename */,
// Nothing.
}
-static LogHandler* log_handler_ = &DefaultLogHandler;
-static int log_silencer_count_ = 0;
+extern LogHandler* cr_log_handler_;
+extern int cr_log_silencer_count_;
-static Mutex* log_silencer_count_mutex_ = NULL;
-GOOGLE_PROTOBUF_DECLARE_ONCE(log_silencer_count_init_);
+extern Mutex* cr_log_silencer_count_mutex_;
+extern ProtobufOnceType cr_log_silencer_count_init_;
void DeleteLogSilencerCount() {
- delete log_silencer_count_mutex_;
- log_silencer_count_mutex_ = NULL;
+ delete cr_log_silencer_count_mutex_;
+ cr_log_silencer_count_mutex_ = NULL;
}
void InitLogSilencerCount() {
- log_silencer_count_mutex_ = new Mutex;
+ cr_log_silencer_count_mutex_ = new Mutex;
OnShutdown(&DeleteLogSilencerCount);
}
void InitLogSilencerCountOnce() {
- GoogleOnceInit(&log_silencer_count_init_, &InitLogSilencerCount);
+ GoogleOnceInit(&cr_log_silencer_count_init_, &InitLogSilencerCount);
}
LogMessage& LogMessage::operator<<(const string& value) {
@@ -246,12 +248,13 @@ void LogMessage::Finish() {
if (level_ != LOGLEVEL_FATAL) {
InitLogSilencerCountOnce();
- MutexLock lock(log_silencer_count_mutex_);
- suppress = log_silencer_count_ > 0;
+ MutexLock lock(cr_log_silencer_count_mutex_);
+ suppress = cr_log_silencer_count_ > 0;
}
if (!suppress) {
- log_handler_(level_, filename_, line_, message_);
+ (cr_log_handler_ ? cr_log_handler_ : DefaultLogHandler)(level_, filename_,
+ line_, message_);
}
if (level_ == LOGLEVEL_FATAL) {
@@ -270,28 +273,29 @@ void LogFinisher::operator=(LogMessage& other) {
} // namespace internal
LogHandler* SetLogHandler(LogHandler* new_func) {
- LogHandler* old = internal::log_handler_;
+ LogHandler* old = internal::cr_log_handler_ ? internal::cr_log_handler_
+ : internal::DefaultLogHandler;
if (old == &internal::NullLogHandler) {
old = NULL;
}
if (new_func == NULL) {
- internal::log_handler_ = &internal::NullLogHandler;
+ internal::cr_log_handler_ = &internal::NullLogHandler;
} else {
- internal::log_handler_ = new_func;
+ internal::cr_log_handler_ = new_func;
}
return old;
}
LogSilencer::LogSilencer() {
internal::InitLogSilencerCountOnce();
- MutexLock lock(internal::log_silencer_count_mutex_);
- ++internal::log_silencer_count_;
+ MutexLock lock(internal::cr_log_silencer_count_mutex_);
+ ++internal::cr_log_silencer_count_;
};
LogSilencer::~LogSilencer() {
internal::InitLogSilencerCountOnce();
- MutexLock lock(internal::log_silencer_count_mutex_);
- --internal::log_silencer_count_;
+ MutexLock lock(internal::cr_log_silencer_count_mutex_);
+ --internal::cr_log_silencer_count_;
};
// ===================================================================
@@ -407,23 +411,23 @@ uint32 ghtonl(uint32 x) {
namespace internal {
typedef void OnShutdownFunc();
-vector<void (*)()>* shutdown_functions = NULL;
-Mutex* shutdown_functions_mutex = NULL;
-GOOGLE_PROTOBUF_DECLARE_ONCE(shutdown_functions_init);
+extern vector<void (*)()>* cr_shutdown_functions;
+extern Mutex* cr_shutdown_functions_mutex;
+extern ProtobufOnceType cr_shutdown_functions_init;
void InitShutdownFunctions() {
- shutdown_functions = new vector<void (*)()>;
- shutdown_functions_mutex = new Mutex;
+ cr_shutdown_functions = new vector<void (*)()>;
+ cr_shutdown_functions_mutex = new Mutex;
}
inline void InitShutdownFunctionsOnce() {
- GoogleOnceInit(&shutdown_functions_init, &InitShutdownFunctions);
+ GoogleOnceInit(&cr_shutdown_functions_init, &InitShutdownFunctions);
}
void OnShutdown(void (*func)()) {
InitShutdownFunctionsOnce();
- MutexLock lock(shutdown_functions_mutex);
- shutdown_functions->push_back(func);
+ MutexLock lock(cr_shutdown_functions_mutex);
+ cr_shutdown_functions->push_back(func);
}
} // namespace internal
@@ -431,20 +435,20 @@ void OnShutdown(void (*func)()) {
void ShutdownProtobufLibrary() {
internal::InitShutdownFunctionsOnce();
- // We don't need to lock shutdown_functions_mutex because it's up to the
+ // We don't need to lock cr_shutdown_functions_mutex because it's up to the
// caller to make sure that no one is using the library before this is
// called.
// Make it safe to call this multiple times.
- if (internal::shutdown_functions == NULL) return;
+ if (internal::cr_shutdown_functions == NULL) return;
- for (int i = 0; i < internal::shutdown_functions->size(); i++) {
- internal::shutdown_functions->at(i)();
+ for (int i = 0; i < internal::cr_shutdown_functions->size(); i++) {
+ internal::cr_shutdown_functions->at(i)();
}
- delete internal::shutdown_functions;
- internal::shutdown_functions = NULL;
- delete internal::shutdown_functions_mutex;
- internal::shutdown_functions_mutex = NULL;
+ delete internal::cr_shutdown_functions;
+ internal::cr_shutdown_functions = NULL;
+ delete internal::cr_shutdown_functions_mutex;
+ internal::cr_shutdown_functions_mutex = NULL;
}
#if PROTOBUF_USE_EXCEPTIONS

Powered by Google App Engine
This is Rietveld 408576698