Vitaliy Margolen : dinput: Use internal data format for object lookups.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Jan 11 05:34:07 CST 2007


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

Author: Vitaliy Margolen <wine-patches at kievinfo.com>
Date:   Tue Jan  9 13:44:54 2007 -0700

dinput: Use internal data format for object lookups.

---

 dlls/dinput/device.c         |   13 +++++++------
 dlls/dinput/device_private.h |    1 -
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c
index edf8350..217618a 100644
--- a/dlls/dinput/device.c
+++ b/dlls/dinput/device.c
@@ -488,13 +488,14 @@ failed:
 }
 
 /* find an object by it's offset in a data format */
-int offset_to_object(LPCDIDATAFORMAT df, int offset)
+static int offset_to_object(DataFormat *df, int offset)
 {
     int i;
 
-    for (i = 0; i < df->dwNumObjs; i++)
-        if (dataformat_to_odf(df, i)->dwOfs == offset)
-            return i;
+    if (!df->offsets) return -1;
+
+    for (i = 0; i < df->wine_df->dwNumObjs; i++)
+        if (df->offsets[i] == offset) return i;
 
     return -1;
 }
@@ -522,8 +523,8 @@ int find_property(DataFormat *df, LPCDIP
 {
     switch (ph->dwHow)
     {
-        case DIPH_BYID:     return id_to_object(df->user_df, ph->dwObj);
-        case DIPH_BYOFFSET: return offset_to_object(df->user_df, ph->dwObj);
+        case DIPH_BYID:     return id_to_object(df->wine_df, ph->dwObj);
+        case DIPH_BYOFFSET: return offset_to_object(df, ph->dwObj);
     }
     FIXME("Unhandled ph->dwHow=='%04X'\n", (unsigned int)ph->dwHow);
 
diff --git a/dlls/dinput/device_private.h b/dlls/dinput/device_private.h
index e541b86..ae2da3c 100644
--- a/dlls/dinput/device_private.h
+++ b/dlls/dinput/device_private.h
@@ -73,7 +73,6 @@ extern HRESULT create_DataFormat(LPCDIDA
 extern void release_DataFormat(DataFormat *df) ;
 extern void queue_event(LPDIRECTINPUTDEVICE8A iface, int ofs, DWORD data, DWORD time, DWORD seq);
 /* Helper functions to work with data format */
-extern int offset_to_object(LPCDIDATAFORMAT df, int offset);
 extern int id_to_offset(DataFormat *df, int id);
 extern int find_property(DataFormat *df, LPCDIPROPHEADER ph);
 




More information about the wine-cvs mailing list