| Index: content/common/notification_service.cc
|
| ===================================================================
|
| --- content/common/notification_service.cc (revision 91771)
|
| +++ content/common/notification_service.cc (working copy)
|
| @@ -24,18 +24,12 @@
|
|
|
| NotificationService::NotificationService() {
|
| DCHECK(current() == NULL);
|
| -#ifndef NDEBUG
|
| - memset(observer_counts_, 0, sizeof(observer_counts_));
|
| -#endif
|
| -
|
| lazy_tls_ptr.Pointer()->Set(this);
|
| }
|
|
|
| void NotificationService::AddObserver(NotificationObserver* observer,
|
| NotificationType type,
|
| const NotificationSource& source) {
|
| - DCHECK(type.value < NotificationType::NOTIFICATION_TYPE_COUNT);
|
| -
|
| // We have gotten some crashes where the observer pointer is NULL. The problem
|
| // is that this happens when we actually execute a notification, so have no
|
| // way of knowing who the bad observer was. We want to know when this happens
|
| @@ -60,8 +54,6 @@
|
| void NotificationService::RemoveObserver(NotificationObserver* observer,
|
| NotificationType type,
|
| const NotificationSource& source) {
|
| - DCHECK(type.value < NotificationType::NOTIFICATION_TYPE_COUNT);
|
| -
|
| // This is a very serious bug. An object is most likely being deleted on
|
| // the wrong thread, and as a result another thread's NotificationService
|
| // has its deleted pointer in its map. A garbge object will be called in the
|
| @@ -87,7 +79,6 @@
|
| const NotificationDetails& details) {
|
| DCHECK(type.value > NotificationType::ALL) <<
|
| "Allowed for observing, but not posting.";
|
| - DCHECK(type.value < NotificationType::NOTIFICATION_TYPE_COUNT);
|
|
|
| // There's no particular reason for the order in which the different
|
| // classes of observers get notified here.
|
| @@ -128,7 +119,7 @@
|
| lazy_tls_ptr.Pointer()->Set(NULL);
|
|
|
| #ifndef NDEBUG
|
| - for (int i = 0; i < NotificationType::NOTIFICATION_TYPE_COUNT; i++) {
|
| + for (size_t i = 0; i < observer_counts_.size(); i++) {
|
| if (observer_counts_[i] > 0) {
|
| // This may not be completely fixable -- see
|
| // http://code.google.com/p/chromium/issues/detail?id=11010 .
|
| @@ -138,7 +129,7 @@
|
| }
|
| #endif
|
|
|
| - for (int i = 0; i < NotificationType::NOTIFICATION_TYPE_COUNT; i++) {
|
| + for (size_t i = 0; i < observers_.size(); i++) {
|
| NotificationSourceMap omap = observers_[i];
|
| for (NotificationSourceMap::iterator it = omap.begin();
|
| it != omap.end(); ++it)
|
|
|