diff options
author | Emilio Cobos Álvarez <ecoal95@gmail.com> | 2016-01-06 17:44:26 +0100 |
---|---|---|
committer | Emilio Cobos Álvarez <ecoal95@gmail.com> | 2016-01-06 17:44:26 +0100 |
commit | 21b9245ccccef613f655d3d7f54046e858d4b0df (patch) | |
tree | 12c19e1833d5b3451ae63e4b7e62a234c4210b19 | |
parent | f59be2588c47a8dab2da00f12661d204576c0bd3 (diff) | |
download | glutin-21b9245ccccef613f655d3d7f54046e858d4b0df.tar.gz glutin-21b9245ccccef613f655d3d7f54046e858d4b0df.zip |
x11: Prevent leak on XIQueryDevice
Per http://linux.die.net/man/3/xiquerydevice:
> XIFreeDeviceInfo frees the information returned by
> XIQueryDevice.
-rw-r--r-- | src/api/x11/input.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/api/x11/input.rs b/src/api/x11/input.rs index d962e7f..2ebc989 100644 --- a/src/api/x11/input.rs +++ b/src/api/x11/input.rs @@ -226,7 +226,7 @@ impl XInputEventHandler { for axis_id in 0..axis_state.mask_len { if ffi::XIMaskIsSet(&mask, axis_id) { let axis_value = unsafe{*axis_state.values.offset(axis_count)}; - let delta = calc_scroll_deltas(event_data, axis_id, axis_value, &self.axis_list, + let delta = calc_scroll_deltas(event_data, axis_id, axis_value, &self.axis_list, &mut self.current_state.axis_values); scroll_delta.0 += delta.0; scroll_delta.1 += delta.1; @@ -314,7 +314,11 @@ fn read_input_axis_info(display: &Arc<XConnection>) -> Vec<Axis> { } } } - + + unsafe { + (display.xinput2.XIFreeDeviceInfo)(devices); + } + axis_list } |