[xf86-input-synaptics v3 07/14] Introduce SynapticsCopyHwState function

Chase Douglas chase.douglas at canonical.com
Fri Feb 10 11:56:51 PST 2012


Signed-off-by: Chase Douglas <chase.douglas at canonical.com>
---
 src/alpscomm.c  |    2 +-
 src/eventcomm.c |    2 +-
 src/ps2comm.c   |    2 +-
 src/synaptics.c |    4 ++--
 src/synproto.c  |    7 +++++++
 src/synproto.h  |    2 ++
 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 bfcce28..6f33e58 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -714,7 +714,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_ */
-- 
1.7.8.3



More information about the xorg-devel mailing list