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); |