summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/alpscomm.c2
-rw-r--r--src/eventcomm.c2
-rw-r--r--src/ps2comm.c2
-rw-r--r--src/synaptics.c4
-rw-r--r--src/synproto.c7
-rw-r--r--src/synproto.h2
6 files changed, 14 insertions, 5 deletions
diff --git a/src/alpscomm.c b/src/alpscomm.c
index dbc3554..8988e6b 100644
--- a/src/alpscomm.c
+++ b/src/alpscomm.c
@@ -218,7 +218,7 @@ ALPSReadHwState(InputInfoPtr pInfo,
ALPS_process_packet(buf, hw);
- *hwRet = *hw;
+ SynapticsCopyHwState(hwRet, hw);
return TRUE;
}
diff --git a/src/eventcomm.c b/src/eventcomm.c
index e494d4c..b83da8f 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -720,7 +720,7 @@ EventReadHwState(InputInfoPtr pInfo,
EventProcessTouch(pInfo);
hw->numFingers = count_fingers(comm);
hw->millis = 1000 * ev.time.tv_sec + ev.time.tv_usec / 1000;
- *hwRet = *hw;
+ SynapticsCopyHwState(hwRet, hw);
return TRUE;
}
break;
diff --git a/src/ps2comm.c b/src/ps2comm.c
index 74bd937..5b34414 100644
--- a/src/ps2comm.c
+++ b/src/ps2comm.c
@@ -650,7 +650,7 @@ PS2ReadHwStateProto(InputInfoPtr pInfo,
}
}
hw->millis = GetTimeInMillis();
- *hwRet = *hw;
+ SynapticsCopyHwState(hwRet, hw);
return TRUE;
}
diff --git a/src/synaptics.c b/src/synaptics.c
index a6efd7e..475683b 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1337,7 +1337,7 @@ timerFunc(OsTimerPtr timer, CARD32 now, pointer arg)
sigstate = xf86BlockSIGIO();
priv->hwState->millis += now - priv->timer_time;
- *hw = *priv->hwState;
+ SynapticsCopyHwState(hw, priv->hwState);
delay = HandleState(pInfo, hw, hw->millis, TRUE);
priv->timer_time = now;
@@ -1378,7 +1378,7 @@ ReadInput(InputInfoPtr pInfo)
Bool newDelay = FALSE;
while (SynapticsGetHwState(pInfo, priv, hw)) {
- *priv->hwState = *hw;
+ SynapticsCopyHwState(priv->hwState, hw);
delay = HandleState(pInfo, hw, hw->millis, FALSE);
newDelay = TRUE;
}
diff --git a/src/synproto.c b/src/synproto.c
index fc2b157..9f042b5 100644
--- a/src/synproto.c
+++ b/src/synproto.c
@@ -41,3 +41,10 @@ SynapticsHwStateFree(struct SynapticsHwState **hw)
free(*hw);
*hw = NULL;
}
+
+void
+SynapticsCopyHwState(struct SynapticsHwState *dst,
+ const struct SynapticsHwState *src)
+{
+ *dst = *src;
+}
diff --git a/src/synproto.h b/src/synproto.h
index 74becca..8d50ce6 100644
--- a/src/synproto.h
+++ b/src/synproto.h
@@ -95,5 +95,7 @@ extern struct SynapticsProtocolOperations psm_proto_operations;
extern struct SynapticsHwState *SynapticsHwStateAlloc(SynapticsPrivate *priv);
extern void SynapticsHwStateFree(struct SynapticsHwState **hw);
+extern void SynapticsCopyHwState(struct SynapticsHwState *dst,
+ const struct SynapticsHwState *src);
#endif /* _SYNPROTO_H_ */