Index: chrome/browser/sync/notifier/cache_invalidation_packet_handler.cc |
diff --git a/chrome/browser/sync/notifier/cache_invalidation_packet_handler.cc b/chrome/browser/sync/notifier/cache_invalidation_packet_handler.cc |
index ca2f7c2a2c05c8293da2a5bb14d37dadab913054..b2b17662200d0614c7e3e47f9fe8b2fc1fa94577 100644 |
--- a/chrome/browser/sync/notifier/cache_invalidation_packet_handler.cc |
+++ b/chrome/browser/sync/notifier/cache_invalidation_packet_handler.cc |
@@ -8,6 +8,7 @@ |
#include "base/base64.h" |
#include "base/callback.h" |
+#include "base/compiler_specific.h" |
#include "base/logging.h" |
#include "base/rand_util.h" |
#include "base/string_number_conversions.h" |
@@ -197,7 +198,8 @@ std::string MakeSid() { |
CacheInvalidationPacketHandler::CacheInvalidationPacketHandler( |
buzz::XmppClient* xmpp_client, |
invalidation::InvalidationClient* invalidation_client) |
- : xmpp_client_(xmpp_client), |
+ : scoped_callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), |
+ xmpp_client_(xmpp_client), |
invalidation_client_(invalidation_client), |
seq_(0), |
sid_(MakeSid()) { |
@@ -207,14 +209,13 @@ CacheInvalidationPacketHandler::CacheInvalidationPacketHandler( |
invalidation_client_->network_endpoint(); |
CHECK(network_endpoint); |
network_endpoint->RegisterOutboundListener( |
- invalidation::NewPermanentCallback( |
- this, |
+ scoped_callback_factory_.NewCallback( |
&CacheInvalidationPacketHandler::HandleOutboundPacket)); |
// Owned by xmpp_client. |
CacheInvalidationListenTask* listen_task = |
new CacheInvalidationListenTask( |
- xmpp_client, NewCallback( |
- this, &CacheInvalidationPacketHandler::HandleInboundPacket)); |
+ xmpp_client, scoped_callback_factory_.NewCallback( |
+ &CacheInvalidationPacketHandler::HandleInboundPacket)); |
listen_task->Start(); |
} |