Commit 6145f6ff authored by Bo Liu's avatar Bo Liu Committed by Commit Bot

Convert AddVSyncCompleteCallback to OnceClosure

It's called only once. Use move semantics and make that clear.

Change-Id: I6f6e41a19a8198b9821c7c17d53d1f2c2ca09fef
Reviewed-on: https://chromium-review.googlesource.com/c/1313056Reviewed-by: default avatarPaul Miller <paulmiller@chromium.org>
Commit-Queue: Bo <boliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605059}
parent 570c3c6c
......@@ -93,7 +93,7 @@ bool SynchronousCompositorSyncCallBridge::WaitAfterVSyncOnUIThread(
return true;
}
window_android_in_vsync_ = window_android;
window_android_in_vsync_->AddVSyncCompleteCallback(base::BindRepeating(
window_android_in_vsync_->AddVSyncCompleteCallback(base::BindOnce(
&SynchronousCompositorSyncCallBridge::VSyncCompleteOnUIThread, this));
return true;
}
......
......@@ -4,6 +4,8 @@
#include "ui/android/window_android.h"
#include <utility>
#include "base/android/jni_android.h"
#include "base/android/jni_array.h"
#include "base/android/jni_string.h"
......@@ -178,8 +180,8 @@ void WindowAndroid::AddObserver(WindowAndroidObserver* observer) {
observer_list_.AddObserver(observer);
}
void WindowAndroid::AddVSyncCompleteCallback(const base::Closure& callback) {
vsync_complete_callbacks_.push_back(callback);
void WindowAndroid::AddVSyncCompleteCallback(base::OnceClosure callback) {
vsync_complete_callbacks_.emplace_back(std::move(callback));
}
void WindowAndroid::RemoveObserver(WindowAndroidObserver* observer) {
......@@ -249,8 +251,8 @@ void WindowAndroid::OnVSync(JNIEnv* env,
begin_frame_source_->OnVSync(frame_time, vsync_period);
for (const base::Closure& callback : vsync_complete_callbacks_)
callback.Run();
for (base::OnceClosure& callback : vsync_complete_callbacks_)
std::move(callback).Run();
vsync_complete_callbacks_.clear();
if (needs_begin_frames_)
......
......@@ -6,7 +6,6 @@
#define UI_ANDROID_WINDOW_ANDROID_H_
#include <jni.h>
#include <list>
#include <memory>
#include <string>
#include <vector>
......@@ -64,7 +63,7 @@ class UI_ANDROID_EXPORT WindowAndroid : public ViewAndroid {
viz::BeginFrameSource* GetBeginFrameSource();
// Runs the provided callback as soon as the current vsync was handled.
void AddVSyncCompleteCallback(const base::Closure& callback);
void AddVSyncCompleteCallback(base::OnceClosure callback);
void SetNeedsAnimate();
void Animate(base::TimeTicks begin_frame_time);
......@@ -117,7 +116,7 @@ class UI_ANDROID_EXPORT WindowAndroid : public ViewAndroid {
std::unique_ptr<WindowBeginFrameSource> begin_frame_source_;
bool needs_begin_frames_;
std::list<base::Closure> vsync_complete_callbacks_;
std::vector<base::OnceClosure> vsync_complete_callbacks_;
float mouse_wheel_scroll_factor_;
bool vsync_paused_ = false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment