summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/x11/xf86Wacom.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/x11/xf86Wacom.c b/src/x11/xf86Wacom.c
index 36ee19e..6bbdf12 100644
--- a/src/x11/xf86Wacom.c
+++ b/src/x11/xf86Wacom.c
@@ -371,12 +371,11 @@ void wcmEmitKeycode(WacomDevicePtr priv, int keycode, int state)
}
static inline void
-convertAxes(const WacomAxisData *axes, int *first_out, int *num_out, int valuators[7])
+convertAxes(const WacomAxisData *axes, int *first_out, int *num_out, int valuators_out[7])
{
int first = 7;
int last = -1;
-
- memset(valuators, 0, 7 * sizeof(valuators[0]));
+ int valuators[7] = {0};
for (enum WacomAxisType which = _WACOM_AXIS_LAST; which > 0; which >>= 1)
{
@@ -415,13 +414,15 @@ convertAxes(const WacomAxisData *axes, int *first_out, int *num_out, int valuato
first = 0;
*first_out = first;
*num_out = last - first + 1;
+
+ memcpy(valuators_out, &valuators[first], *num_out * sizeof(valuators[0]));
}
void wcmEmitProximity(WacomDevicePtr priv, bool is_proximity_in,
const WacomAxisData *axes)
{
InputInfoPtr pInfo = priv->frontend;
- int valuators[7];
+ int valuators[7] = {0};
int first_val, num_vals;
convertAxes(axes, &first_val, &num_vals, valuators);
@@ -432,7 +433,7 @@ void wcmEmitProximity(WacomDevicePtr priv, bool is_proximity_in,
void wcmEmitMotion(WacomDevicePtr priv, bool is_absolute, const WacomAxisData *axes)
{
InputInfoPtr pInfo = priv->frontend;
- int valuators[7];
+ int valuators[7] = {0};
int first_val, num_vals;
convertAxes(axes, &first_val, &num_vals, valuators);
@@ -443,7 +444,7 @@ void wcmEmitMotion(WacomDevicePtr priv, bool is_absolute, const WacomAxisData *a
void wcmEmitButton(WacomDevicePtr priv, bool is_absolute, int button, bool is_press, const WacomAxisData *axes)
{
InputInfoPtr pInfo = priv->frontend;
- int valuators[7];
+ int valuators[7] = {0};
int first_val, num_vals;
convertAxes(axes, &first_val, &num_vals, valuators);