diff options
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/sync/notifier/cache_invalidation_packet_handler.cc | 11 | ||||
-rw-r--r-- | chrome/browser/sync/notifier/cache_invalidation_packet_handler.h | 4 |
2 files changed, 10 insertions, 5 deletions
diff --git a/chrome/browser/sync/notifier/cache_invalidation_packet_handler.cc b/chrome/browser/sync/notifier/cache_invalidation_packet_handler.cc index ca2f7c2..b2b1766 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(); } diff --git a/chrome/browser/sync/notifier/cache_invalidation_packet_handler.h b/chrome/browser/sync/notifier/cache_invalidation_packet_handler.h index e3e89f2..e96c897 100644 --- a/chrome/browser/sync/notifier/cache_invalidation_packet_handler.h +++ b/chrome/browser/sync/notifier/cache_invalidation_packet_handler.h @@ -12,6 +12,7 @@ #include <string> #include "base/basictypes.h" +#include "base/scoped_callback_factory.h" #include "talk/xmpp/jid.h" namespace buzz { @@ -48,6 +49,9 @@ class CacheInvalidationPacketHandler { void HandleInboundPacket(const std::string& packet); + base::ScopedCallbackFactory<CacheInvalidationPacketHandler> + scoped_callback_factory_; + buzz::XmppClient* xmpp_client_; invalidation::InvalidationClient* invalidation_client_; |