diff options
Diffstat (limited to 'base/message_loop.cc')
-rw-r--r-- | base/message_loop.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/base/message_loop.cc b/base/message_loop.cc index 12ad3fa..76f75d5 100644 --- a/base/message_loop.cc +++ b/base/message_loop.cc @@ -9,6 +9,7 @@ #include "base/compiler_specific.h" #include "base/lazy_instance.h" #include "base/logging.h" +#include "base/memory_debug.h" #include "base/message_pump_default.h" #include "base/string_util.h" #include "base/thread_local.h" @@ -107,6 +108,14 @@ MessageLoop::MessageLoop(Type type) pump_ = new base::MessagePumpDefault(); } #endif // OS_POSIX + + // We override the PURIFY build to disregard any UMRs in delayed_work_queue_. + // This avoids an error in pop(), which pushes the |comp| field onto the + // stack. The |comp| field is uninitialized, since it is std::less, which is + // an empty struct -- VS reserves 1 byte for this struct, which will never + // be initialized. See http://crbug.com/5555. + base::MemoryDebug::MarkAsInitialized(&delayed_work_queue_, + sizeof(delayed_work_queue_)); } MessageLoop::~MessageLoop() { |