Index: base/message_pump_x.cc |
diff --git a/base/message_pump_x.cc b/base/message_pump_x.cc |
index 3b1ed3da1f58dab6517656fe06fc9ed8eb0fe1f8..8a253df9e3a14f7eced3164906782575e3c0631c 100644 |
--- a/base/message_pump_x.cc |
+++ b/base/message_pump_x.cc |
@@ -183,6 +183,8 @@ bool MessagePumpX::RunOnce(GMainContext* context, bool block) { |
} |
bool MessagePumpX::WillProcessXEvent(XEvent* xevent) { |
+ if (!observers().might_have_observers()) |
+ return false; |
ObserverListBase<MessagePumpObserver>::Iterator it(observers()); |
MessagePumpObserver* obs; |
while ((obs = it.GetNext()) != NULL) { |
@@ -193,11 +195,7 @@ bool MessagePumpX::WillProcessXEvent(XEvent* xevent) { |
} |
void MessagePumpX::DidProcessXEvent(XEvent* xevent) { |
- ObserverListBase<MessagePumpObserver>::Iterator it(observers()); |
- MessagePumpObserver* obs; |
- while ((obs = it.GetNext()) != NULL) { |
- obs->DidProcessEvent(xevent); |
- } |
+ FOR_EACH_OBSERVER(MessagePumpObserver, observers(), DidProcessEvent(xevent)); |
} |
} // namespace base |