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

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: Rebased. 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..da87dacdd6460f6f51826133733f13bc7e729166 100644
--- a/third_party/tcmalloc/chromium/src/base/googleinit.h
+++ b/third_party/tcmalloc/chromium/src/base/googleinit.h
@@ -33,19 +33,46 @@
#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 latest gperftools here.
+ // RAW_VLOG was called here, but it is disabled since this googleinit.h is
+ // included from out of third_party/tcmalloc.
+ // "base/logging.h" (included above) indicates Chromium's base/logging.h
+ // when this googleinit.h is included from out of third_party/tcmalloc.
jar (doing other things) 2012/02/28 22:15:49 Suggest you have comment, and then show exactly th
Dai Mikurube (NOT FULLTIME) 2012/02/28 23:05:43 Done.
+ if (ctor)
+ ctor();
+ }
+ ~GoogleInitializer() {
+ // TODO(dmikurube): Re-enable the latest gperftools here.
+ // The same as above.
+ 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