Index: base/callback_internal.cc |
diff --git a/base/callback_internal.cc b/base/callback_internal.cc |
index 3a665d28cae8fc6d5280acad88313de0a8a8ec41..5a83bfa50ec3369c622efa6f1d305af4355a7c61 100644 |
--- a/base/callback_internal.cc |
+++ b/base/callback_internal.cc |
@@ -29,7 +29,8 @@ BindStateBase::BindStateBase(InvokeFuncStorage polymorphic_invoke, |
BindStateBase::BindStateBase(InvokeFuncStorage polymorphic_invoke, |
void (*destructor)(const BindStateBase*), |
bool (*is_cancelled)(const BindStateBase*)) |
- : polymorphic_invoke_(polymorphic_invoke), |
+ : RefCountedThreadSafe(1 /* initial_ref_count */), |
+ polymorphic_invoke_(polymorphic_invoke), |
destructor_(destructor), |
is_cancelled_(is_cancelled) {} |
@@ -74,9 +75,8 @@ bool CallbackBase<CopyMode::MoveOnly>::EqualsInternal( |
return bind_state_ == other.bind_state_; |
} |
-CallbackBase<CopyMode::MoveOnly>::CallbackBase( |
- BindStateBase* bind_state) |
- : bind_state_(bind_state) { |
+CallbackBase<CopyMode::MoveOnly>::CallbackBase(BindStateBase* bind_state) |
+ : bind_state_(AdoptRef(bind_state)) { |
DCHECK(!bind_state_.get() || bind_state_->HasOneRef()); |
} |