Chromium Code Reviews| Index: ui/events/test/events_test_utils_x11.cc |
| diff --git a/ui/events/test/events_test_utils_x11.cc b/ui/events/test/events_test_utils_x11.cc |
| index 20d1c17da5057eeb33216b0a5232bdd1319b671a..c2876c9a94ebeba0c51bd8fcf7fab2af68ac3de4 100644 |
| --- a/ui/events/test/events_test_utils_x11.cc |
| +++ b/ui/events/test/events_test_utils_x11.cc |
| @@ -135,15 +135,25 @@ XEvent* CreateXInput2Event(int deviceid, |
| namespace ui { |
| -ScopedXI2Event::ScopedXI2Event() {} |
| -ScopedXI2Event::~ScopedXI2Event() { |
| - Cleanup(); |
| +void XEventDeleter::operator()(XEvent* event) { |
|
sky
2014/02/03 04:48:31
Can you add some comments as to why this is necess
sadrul
2014/02/03 15:58:18
Done (added a comment explaining why this is neces
|
| + if (event->type != GenericEvent) |
| + return; |
| + XIDeviceEvent* xiev = |
| + static_cast<XIDeviceEvent*>(event->xcookie.data); |
| + if (xiev) { |
| + delete[] xiev->valuators.mask; |
| + delete[] xiev->valuators.values; |
| + delete[] xiev->buttons.mask; |
| + delete xiev; |
| + } |
| } |
| +ScopedXI2Event::ScopedXI2Event() {} |
| +ScopedXI2Event::~ScopedXI2Event() {} |
| + |
| void ScopedXI2Event::InitKeyEvent(EventType type, |
| KeyboardCode key_code, |
| int flags) { |
| - Cleanup(); |
| XDisplay* display = gfx::GetXDisplay(); |
| event_.reset(new XEvent); |
| memset(event_.get(), 0, sizeof(XEvent)); |
| @@ -168,7 +178,6 @@ void ScopedXI2Event::InitKeyEvent(EventType type, |
| void ScopedXI2Event::InitGenericButtonEvent(int deviceid, |
| EventType type, |
| int flags) { |
| - Cleanup(); |
| event_.reset(CreateXInput2Event(deviceid, |
| XIButtonEventType(type), 0, gfx::Point())); |
| XIDeviceEvent* xievent = static_cast<XIDeviceEvent*>(event_->xcookie.data); |
| @@ -179,7 +188,6 @@ void ScopedXI2Event::InitGenericButtonEvent(int deviceid, |
| void ScopedXI2Event::InitButtonEvent(EventType type, |
| int flags) { |
| - Cleanup(); |
| event_.reset(new XEvent); |
| memset(event_.get(), 0, sizeof(XEvent)); |
| event_->type = XButtonEventType(type); |
| @@ -214,7 +222,6 @@ void ScopedXI2Event::InitScrollEvent(int deviceid, |
| int x_offset_ordinal, |
| int y_offset_ordinal, |
| int finger_count) { |
| - Cleanup(); |
| event_.reset(CreateXInput2Event(deviceid, XI_Motion, 0, gfx::Point())); |
| Valuator valuators[] = { |
| @@ -234,7 +241,6 @@ void ScopedXI2Event::InitFlingScrollEvent(int deviceid, |
| int x_velocity_ordinal, |
| int y_velocity_ordinal, |
| bool is_cancel) { |
| - Cleanup(); |
| event_.reset(CreateXInput2Event(deviceid, XI_Motion, deviceid, gfx::Point())); |
| Valuator valuators[] = { |
| @@ -254,25 +260,10 @@ void ScopedXI2Event::InitTouchEvent(int deviceid, |
| int tracking_id, |
| const gfx::Point& location, |
| const std::vector<Valuator>& valuators) { |
| - Cleanup(); |
| event_.reset(CreateXInput2Event(deviceid, evtype, tracking_id, location)); |
| SetUpValuators(valuators); |
| } |
| -void ScopedXI2Event::Cleanup() { |
| - if (event_.get() && event_->type == GenericEvent) { |
| - XIDeviceEvent* xiev = |
| - static_cast<XIDeviceEvent*>(event_->xcookie.data); |
| - if (xiev) { |
| - delete[] xiev->valuators.mask; |
| - delete[] xiev->valuators.values; |
| - delete[] xiev->buttons.mask; |
| - delete xiev; |
| - } |
| - } |
| - event_.reset(); |
| -} |
| - |
| void ScopedXI2Event::SetUpValuators(const std::vector<Valuator>& valuators) { |
| CHECK(event_.get()); |
| CHECK_EQ(GenericEvent, event_->type); |