summaryrefslogtreecommitdiff
path: root/chromium/base/callback_helpers.cc
diff options
context:
space:
mode:
authorAndras Becsi <andras.becsi@digia.com>2013-12-11 21:33:03 +0100
committerAndras Becsi <andras.becsi@digia.com>2013-12-13 12:34:07 +0100
commitf2a33ff9cbc6d19943f1c7fbddd1f23d23975577 (patch)
tree0586a32aa390ade8557dfd6b4897f43a07449578 /chromium/base/callback_helpers.cc
parent5362912cdb5eea702b68ebe23702468d17c3017a (diff)
downloadqtwebengine-chromium-f2a33ff9cbc6d19943f1c7fbddd1f23d23975577.tar.gz
Update Chromium to branch 1650 (31.0.1650.63)
Change-Id: I57d8c832eaec1eb2364e0a8e7352a6dd354db99f Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'chromium/base/callback_helpers.cc')
-rw-r--r--chromium/base/callback_helpers.cc42
1 files changed, 42 insertions, 0 deletions
diff --git a/chromium/base/callback_helpers.cc b/chromium/base/callback_helpers.cc
new file mode 100644
index 00000000000..ef02b2bde0c
--- /dev/null
+++ b/chromium/base/callback_helpers.cc
@@ -0,0 +1,42 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/callback_helpers.h"
+
+#include "base/callback.h"
+
+namespace base {
+
+ScopedClosureRunner::ScopedClosureRunner() {
+}
+
+ScopedClosureRunner::ScopedClosureRunner(const Closure& closure)
+ : closure_(closure) {
+}
+
+ScopedClosureRunner::~ScopedClosureRunner() {
+ if (!closure_.is_null())
+ closure_.Run();
+}
+
+void ScopedClosureRunner::Reset() {
+ Closure old_closure = Release();
+ if (!old_closure.is_null())
+ old_closure.Run();
+}
+
+void ScopedClosureRunner::Reset(const Closure& closure) {
+ Closure old_closure = Release();
+ closure_ = closure;
+ if (!old_closure.is_null())
+ old_closure.Run();
+}
+
+Closure ScopedClosureRunner::Release() {
+ Closure result = closure_;
+ closure_.Reset();
+ return result;
+}
+
+} // namespace base