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

Unified Diff: third_party/tcmalloc/chromium/src/base/googleinit.h

Issue 9311003: Update the tcmalloc chromium branch to r144 (gperftools 2.0), and merge chromium-specific changes. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Rebasec Created 8 years, 10 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/tcmalloc/chromium/src/base/googleinit.h
diff --git a/third_party/tcmalloc/chromium/src/base/googleinit.h b/third_party/tcmalloc/chromium/src/base/googleinit.h
index 62ad84c60251665e5e8fae2139d0714457bc838f..a48375d429ddcf3c85e3a0727c142b62e87e493d 100644
--- a/third_party/tcmalloc/chromium/src/base/googleinit.h
+++ b/third_party/tcmalloc/chromium/src/base/googleinit.h
@@ -33,19 +33,55 @@
#ifndef _GOOGLEINIT_H
#define _GOOGLEINIT_H
+#include "base/logging.h"
+
class GoogleInitializer {
public:
- typedef void (*void_function)(void);
- GoogleInitializer(const char* name, void_function f) {
- f();
+ typedef void (*VoidFunction)(void);
+ GoogleInitializer(const char* name, VoidFunction ctor, VoidFunction dtor)
+ : name_(name), destructor_(dtor) {
+ // TODO(dmikurube): Re-enable the commented-out code.
+ // We commented out the following line, since Chromium does not have the
+ // proper includes to log using these macros.
+ //
+ // Commended-out code:
+ // RAW_VLOG(10, "<GoogleModuleObject> constructing: %s\n", name_);
+ //
+ // This googleinit.h is included from out of third_party/tcmalloc, such as
+ // net/tools/flip_server/balsa_headers.cc.
+ // "base/logging.h" (included above) indicates Chromium's base/logging.h
+ // when this googleinit.h is included from out of third_party/tcmalloc.
+ if (ctor)
+ ctor();
+ }
+ ~GoogleInitializer() {
+ // TODO(dmikurube): Re-enable the commented-out code.
+ // The same as above. The following line is commented out in Chromium.
+ //
+ // Commended-out code:
+ // RAW_VLOG(10, "<GoogleModuleObject> destroying: %s\n", name_);
+ if (destructor_)
+ destructor_();
}
+
+ private:
+ const char* const name_;
+ const VoidFunction destructor_;
};
#define REGISTER_MODULE_INITIALIZER(name, body) \
namespace { \
static void google_init_module_##name () { body; } \
GoogleInitializer google_initializer_module_##name(#name, \
- google_init_module_##name); \
+ google_init_module_##name, NULL); \
}
+#define REGISTER_MODULE_DESTRUCTOR(name, body) \
+ namespace { \
+ static void google_destruct_module_##name () { body; } \
+ GoogleInitializer google_destructor_module_##name(#name, \
+ NULL, google_destruct_module_##name); \
+ }
+
+
#endif /* _GOOGLEINIT_H */

Powered by Google App Engine
This is Rietveld 408576698