[email protected] | 0f45036 | 2012-06-09 02:11:01 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
[email protected] | 59eff91 | 2011-02-18 23:29:31 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
5 | #include "base/callback_internal.h" | ||||
6 | |||||
[email protected] | e24f876 | 2011-12-20 00:10:04 | [diff] [blame] | 7 | #include "base/logging.h" |
8 | |||||
[email protected] | 59eff91 | 2011-02-18 23:29:31 | [diff] [blame] | 9 | namespace base { |
10 | namespace internal { | ||||
11 | |||||
12 | bool CallbackBase::is_null() const { | ||||
[email protected] | 7296f276 | 2011-11-21 19:23:44 | [diff] [blame] | 13 | return bind_state_.get() == NULL; |
[email protected] | 59eff91 | 2011-02-18 23:29:31 | [diff] [blame] | 14 | } |
15 | |||||
16 | void CallbackBase::Reset() { | ||||
[email protected] | 59eff91 | 2011-02-18 23:29:31 | [diff] [blame] | 17 | polymorphic_invoke_ = NULL; |
[email protected] | 31d92665 | 2012-06-13 23:15:16 | [diff] [blame] | 18 | // NULL the bind_state_ last, since it may be holding the last ref to whatever |
19 | // object owns us, and we may be deleted after that. | ||||
20 | bind_state_ = NULL; | ||||
[email protected] | 59eff91 | 2011-02-18 23:29:31 | [diff] [blame] | 21 | } |
22 | |||||
23 | bool CallbackBase::Equals(const CallbackBase& other) const { | ||||
[email protected] | 7296f276 | 2011-11-21 19:23:44 | [diff] [blame] | 24 | return bind_state_.get() == other.bind_state_.get() && |
[email protected] | 59eff91 | 2011-02-18 23:29:31 | [diff] [blame] | 25 | polymorphic_invoke_ == other.polymorphic_invoke_; |
26 | } | ||||
27 | |||||
[email protected] | e24f876 | 2011-12-20 00:10:04 | [diff] [blame] | 28 | CallbackBase::CallbackBase(BindStateBase* bind_state) |
29 | : bind_state_(bind_state), | ||||
30 | polymorphic_invoke_(NULL) { | ||||
[email protected] | 3703e92 | 2013-05-31 21:37:53 | [diff] [blame] | 31 | DCHECK(!bind_state_.get() || bind_state_->HasOneRef()); |
[email protected] | 59eff91 | 2011-02-18 23:29:31 | [diff] [blame] | 32 | } |
33 | |||||
34 | CallbackBase::~CallbackBase() { | ||||
35 | } | ||||
36 | |||||
[email protected] | 59eff91 | 2011-02-18 23:29:31 | [diff] [blame] | 37 | } // namespace internal |
[email protected] | 0f45036 | 2012-06-09 02:11:01 | [diff] [blame] | 38 | } // namespace base |