Index: remoting/signaling/iq_sender.cc |
diff --git a/remoting/signaling/iq_sender.cc b/remoting/signaling/iq_sender.cc |
index d3e7432ff33bafbd6f9a828a993492bf21e7f361..7fefc71e934049f131772faf2dffc33b6968b7d0 100644 |
--- a/remoting/signaling/iq_sender.cc |
+++ b/remoting/signaling/iq_sender.cc |
@@ -5,6 +5,7 @@ |
#include "remoting/signaling/iq_sender.h" |
#include "base/bind.h" |
+#include "base/callback_helpers.h" |
#include "base/location.h" |
#include "base/logging.h" |
#include "base/memory/scoped_ptr.h" |
@@ -138,11 +139,8 @@ void IqRequest::SetTimeout(base::TimeDelta timeout) { |
} |
void IqRequest::CallCallback(const buzz::XmlElement* stanza) { |
- if (!callback_.is_null()) { |
- IqSender::ReplyCallback callback(callback_); |
- callback_.Reset(); |
- callback.Run(this, stanza); |
- } |
+ if (!callback_.is_null()) |
+ base::ResetAndReturn(&callback_).Run(this, stanza); |
} |
void IqRequest::OnTimeout() { |