Lucas Zawacki : dinput: Don't trace DIEFFECT members if they don' t contain valid data.

Alexandre Julliard julliard at winehq.org
Wed Apr 11 12:56:46 CDT 2012


Module: wine
Branch: master
Commit: 706d9df8d95a8fff59c4f776ab803c6a1e738d1b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=706d9df8d95a8fff59c4f776ab803c6a1e738d1b

Author: Lucas Zawacki <lfzawacki at gmail.com>
Date:   Tue Apr 10 21:57:58 2012 -0300

dinput: Don't trace DIEFFECT members if they don't contain valid data.

---

 dlls/dinput/effect_linuxinput.c |   42 +++++++++++++++++++++++++-------------
 1 files changed, 27 insertions(+), 15 deletions(-)

diff --git a/dlls/dinput/effect_linuxinput.c b/dlls/dinput/effect_linuxinput.c
index ca43b17..0fb183f 100644
--- a/dlls/dinput/effect_linuxinput.c
+++ b/dlls/dinput/effect_linuxinput.c
@@ -173,7 +173,7 @@ static void _dump_DICUSTOMFORCE(LPCDICUSTOMFORCE frc)
     }
 }
 
-static void _dump_DIEFFECT(LPCDIEFFECT eff, REFGUID guid)
+static void _dump_DIEFFECT(LPCDIEFFECT eff, REFGUID guid, DWORD dwFlags)
 {
     unsigned int i;
     DWORD type = _typeFromGUID(guid);
@@ -188,26 +188,38 @@ static void _dump_DIEFFECT(LPCDIEFFECT eff, REFGUID guid)
     _dump_DIEFFECT_flags(eff->dwFlags); 
     TRACE("  - dwDuration: %d\n", eff->dwDuration);
     TRACE("  - dwGain: %d\n", eff->dwGain);
+
     if (eff->dwGain > 10000)
-	WARN("dwGain is out of range (>10,000)\n");
+        WARN("dwGain is out of range (>10,000)\n");
+
     TRACE("  - dwTriggerButton: %d\n", eff->dwTriggerButton);
     TRACE("  - dwTriggerRepeatInterval: %d\n", eff->dwTriggerRepeatInterval);
-    TRACE("  - cAxes: %d\n", eff->cAxes);
-    TRACE("  - rgdwAxes: %p\n", eff->rgdwAxes);
-    if (TRACE_ON(dinput) && eff->rgdwAxes) {
-	TRACE("    ");	
-	for (i = 0; i < eff->cAxes; ++i)
-	    TRACE("%d ", eff->rgdwAxes[i]);
-	TRACE("\n");
-    }
     TRACE("  - rglDirection: %p\n", eff->rglDirection);
-    TRACE("  - lpEnvelope: %p\n", eff->lpEnvelope);
     TRACE("  - cbTypeSpecificParams: %d\n", eff->cbTypeSpecificParams);
     TRACE("  - lpvTypeSpecificParams: %p\n", eff->lpvTypeSpecificParams);
+
+    /* Only trace some members if dwFlags indicates they have data */
+    if (dwFlags & DIEP_AXES) {
+        TRACE("  - cAxes: %d\n", eff->cAxes);
+        TRACE("  - rgdwAxes: %p\n", eff->rgdwAxes);
+
+        if (TRACE_ON(dinput) && eff->rgdwAxes) {
+            TRACE("    ");
+            for (i = 0; i < eff->cAxes; ++i)
+                TRACE("%d ", eff->rgdwAxes[i]);
+            TRACE("\n");
+        }
+    }
+
+    if (dwFlags & DIEP_ENVELOPE) {
+        TRACE("  - lpEnvelope: %p\n", eff->lpEnvelope);
+        if (eff->lpEnvelope != NULL)
+            _dump_DIENVELOPE(eff->lpEnvelope);
+    }
+
     if (eff->dwSize > sizeof(DIEFFECT_DX5))
-    	TRACE("  - dwStartDelay: %d\n", eff->dwStartDelay);
-    if (eff->lpEnvelope != NULL)
-	_dump_DIENVELOPE(eff->lpEnvelope);
+        TRACE("  - dwStartDelay: %d\n", eff->dwStartDelay);
+
     if (type == DIEFT_CONSTANTFORCE) {
 	if (eff->cbTypeSpecificParams != sizeof(DICONSTANTFORCE)) {
 	    WARN("Effect claims to be a constant force but the type-specific params are the wrong size!\n"); 
@@ -539,7 +551,7 @@ static HRESULT WINAPI LinuxInputEffectImpl_SetParameters(
 
     TRACE("(this=%p,%p,%d)\n", This, peff, dwFlags);
 
-    _dump_DIEFFECT(peff, &This->guid);
+    _dump_DIEFFECT(peff, &This->guid, dwFlags);
 
     if ((dwFlags & ~DIEP_NORESTART & ~DIEP_NODOWNLOAD & ~DIEP_START) == 0) {
 	/* set everything */




More information about the wine-cvs mailing list