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 */ |