diff options
Diffstat (limited to 'chromium/base/callback_helpers.h')
-rw-r--r-- | chromium/base/callback_helpers.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/chromium/base/callback_helpers.h b/chromium/base/callback_helpers.h index 782371f6e71..ec3d6cbf168 100644 --- a/chromium/base/callback_helpers.h +++ b/chromium/base/callback_helpers.h @@ -20,10 +20,13 @@ namespace base { -template <typename Sig> -base::Callback<Sig> ResetAndReturn(base::Callback<Sig>* cb) { - base::Callback<Sig> ret(*cb); - cb->Reset(); +template <typename Signature, + internal::CopyMode copy_mode, + internal::RepeatMode repeat_mode> +base::Callback<Signature, copy_mode, repeat_mode> ResetAndReturn( + base::Callback<Signature, copy_mode, repeat_mode>* cb) { + base::Callback<Signature, copy_mode, repeat_mode> ret(std::move(*cb)); + DCHECK(!*cb); return ret; } |