Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(398)

Unified Diff: components/exo/gamepad.cc

Issue 2159283002: exo: Fix crash in out-of-order destruction of Gamepad (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/exo/gamepad.cc
diff --git a/components/exo/gamepad.cc b/components/exo/gamepad.cc
index dc49bcec9f55e7b07b740b0e901e888332ed900c..94102318880a59948d7cc47aea3151a07b3c3c27 100644
--- a/components/exo/gamepad.cc
+++ b/components/exo/gamepad.cc
@@ -54,7 +54,7 @@ class Gamepad::ThreadSafeGamepadChangeFetcher
ThreadSafeGamepadChangeFetcher(
const ProcessGamepadChangesCallback& post_gamepad_changes,
const CreateGamepadDataFetcherCallback& create_fetcher_callback,
- base::SingleThreadTaskRunner* task_runner)
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner)
: process_gamepad_changes_(post_gamepad_changes),
create_fetcher_callback_(create_fetcher_callback),
polling_task_runner_(task_runner),
@@ -141,7 +141,7 @@ class Gamepad::ThreadSafeGamepadChangeFetcher
CreateGamepadDataFetcherCallback create_fetcher_callback_;
// Reference to task runner on polling thread.
- base::SingleThreadTaskRunner* polling_task_runner_;
+ scoped_refptr<base::SingleThreadTaskRunner> polling_task_runner_;
// Reference to task runner on origin thread.
scoped_refptr<base::SingleThreadTaskRunner> origin_task_runner_;
@@ -167,15 +167,17 @@ class Gamepad::ThreadSafeGamepadChangeFetcher
////////////////////////////////////////////////////////////////////////////////
// Gamepad, public:
-Gamepad::Gamepad(GamepadDelegate* delegate,
- base::SingleThreadTaskRunner* polling_task_runner)
+Gamepad::Gamepad(
+ GamepadDelegate* delegate,
+ scoped_refptr<base::SingleThreadTaskRunner> polling_task_runner)
: Gamepad(delegate,
polling_task_runner,
base::Bind(CreateGamepadPlatformDataFetcher)) {}
-Gamepad::Gamepad(GamepadDelegate* delegate,
- base::SingleThreadTaskRunner* polling_task_runner,
- CreateGamepadDataFetcherCallback create_fetcher_callback)
+Gamepad::Gamepad(
+ GamepadDelegate* delegate,
+ scoped_refptr<base::SingleThreadTaskRunner> polling_task_runner,
+ CreateGamepadDataFetcherCallback create_fetcher_callback)
: delegate_(delegate), weak_factory_(this) {
gamepad_change_fetcher_ = new ThreadSafeGamepadChangeFetcher(
base::Bind(&Gamepad::ProcessGamepadChanges, weak_factory_.GetWeakPtr()),

Powered by Google App Engine
This is Rietveld 408576698