Chromium Code Reviews| 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 */ |