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

Side by Side Diff: ui/events/ozone/evdev/libgestures_glue/event_reader_libevdev_cros.cc

Issue 2833243002: Fix unsafe destruction order of InputDeviceFactoryEvdev (Closed)
Patch Set: Created 3 years, 8 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 unified diff | Download patch
« no previous file with comments | « ui/events/ozone/evdev/input_device_factory_evdev.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/events/ozone/evdev/libgestures_glue/event_reader_libevdev_cros.h" 5 #include "ui/events/ozone/evdev/libgestures_glue/event_reader_libevdev_cros.h"
6 6
7 #include <errno.h> 7 #include <errno.h>
8 #include <libevdev/libevdev.h> 8 #include <libevdev/libevdev.h>
9 #include <linux/input.h> 9 #include <linux/input.h>
10 #include <utility> 10 #include <utility>
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 memset(&evstate_, 0, sizeof(evstate_)); 58 memset(&evstate_, 0, sizeof(evstate_));
59 evdev_.evstate = &evstate_; 59 evdev_.evstate = &evstate_;
60 Event_Init(&evdev_); 60 Event_Init(&evdev_);
61 61
62 Event_Open(&evdev_); 62 Event_Open(&evdev_);
63 63
64 delegate_->OnLibEvdevCrosOpen(&evdev_, &evstate_); 64 delegate_->OnLibEvdevCrosOpen(&evdev_, &evstate_);
65 } 65 }
66 66
67 EventReaderLibevdevCros::~EventReaderLibevdevCros() { 67 EventReaderLibevdevCros::~EventReaderLibevdevCros() {
68 DCHECK(!watching_); 68 Stop();
69 EvdevClose(&evdev_); 69 EvdevClose(&evdev_);
70 } 70 }
71 71
72 EventReaderLibevdevCros::Delegate::~Delegate() {} 72 EventReaderLibevdevCros::Delegate::~Delegate() {}
73 73
74 void EventReaderLibevdevCros::OnFileCanReadWithoutBlocking(int fd) { 74 void EventReaderLibevdevCros::OnFileCanReadWithoutBlocking(int fd) {
75 TRACE_EVENT1("evdev", "EventReaderLibevdevCros::OnFileCanReadWithoutBlocking", 75 TRACE_EVENT1("evdev", "EventReaderLibevdevCros::OnFileCanReadWithoutBlocking",
76 "fd", fd); 76 "fd", fd);
77 77
78 if (EvdevRead(&evdev_)) { 78 if (EvdevRead(&evdev_)) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 if (level >= LOGLEVEL_ERROR) 126 if (level >= LOGLEVEL_ERROR)
127 LOG(ERROR) << "libevdev: " << FormatLog(fmt, args); 127 LOG(ERROR) << "libevdev: " << FormatLog(fmt, args);
128 else if (level >= LOGLEVEL_WARNING) 128 else if (level >= LOGLEVEL_WARNING)
129 LOG(WARNING) << "libevdev: " << FormatLog(fmt, args); 129 LOG(WARNING) << "libevdev: " << FormatLog(fmt, args);
130 else 130 else
131 VLOG(3) << "libevdev: " << FormatLog(fmt, args); 131 VLOG(3) << "libevdev: " << FormatLog(fmt, args);
132 va_end(args); 132 va_end(args);
133 } 133 }
134 134
135 } // namespace ui 135 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/ozone/evdev/input_device_factory_evdev.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698