Zebediah Figura : dinput: Factor out the dinput_device_init() call into dinput7_CreateDeviceEx().

Alexandre Julliard julliard at winehq.org
Mon May 16 15:37:58 CDT 2022


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

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Mon May 16 11:50:40 2022 +0200

dinput: Factor out the dinput_device_init() call into dinput7_CreateDeviceEx().

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/dinput/dinput_main.c  | 7 +++++++
 dlls/dinput/joystick_hid.c | 2 --
 dlls/dinput/keyboard.c     | 6 ------
 dlls/dinput/mouse.c        | 6 ------
 4 files changed, 7 insertions(+), 14 deletions(-)

diff --git a/dlls/dinput/dinput_main.c b/dlls/dinput/dinput_main.c
index 0cd5eb59588..41e143ad43c 100644
--- a/dlls/dinput/dinput_main.c
+++ b/dlls/dinput/dinput_main.c
@@ -545,6 +545,13 @@ static HRESULT WINAPI dinput7_CreateDeviceEx( IDirectInput7W *iface, const GUID
     else hr = hid_joystick_create_device( impl, guid, &device );
 
     if (FAILED(hr)) return hr;
+
+    if (FAILED(hr = dinput_device_init( device )))
+    {
+        IDirectInputDevice8_Release( device );
+        return hr;
+    }
+
     hr = IDirectInputDevice8_QueryInterface( device, iid, out );
     IDirectInputDevice8_Release( device );
     return hr;
diff --git a/dlls/dinput/joystick_hid.c b/dlls/dinput/joystick_hid.c
index 3aa6d6b5ad3..ddd67be4fd0 100644
--- a/dlls/dinput/joystick_hid.c
+++ b/dlls/dinput/joystick_hid.c
@@ -2138,8 +2138,6 @@ HRESULT hid_joystick_create_device( struct dinput *dinput, const GUID *guid, IDi
         impl->base.caps.dwFFDriverVersion = 1;
     }
 
-    if (FAILED(hr = dinput_device_init( &impl->base.IDirectInputDevice8W_iface ))) goto failed;
-
     *out = &impl->base.IDirectInputDevice8W_iface;
     return DI_OK;
 
diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c
index 1a1776ac408..f8f7a5a3195 100644
--- a/dlls/dinput/keyboard.c
+++ b/dlls/dinput/keyboard.c
@@ -183,12 +183,6 @@ HRESULT keyboard_create_device( struct dinput *dinput, const GUID *guid, IDirect
     impl->base.caps.dwFirmwareRevision = 100;
     impl->base.caps.dwHardwareRevision = 100;
 
-    if (FAILED(hr = dinput_device_init( &impl->base.IDirectInputDevice8W_iface )))
-    {
-        IDirectInputDevice_Release( &impl->base.IDirectInputDevice8W_iface );
-        return hr;
-    }
-
     *out = &impl->base.IDirectInputDevice8W_iface;
     return DI_OK;
 }
diff --git a/dlls/dinput/mouse.c b/dlls/dinput/mouse.c
index 2a004d80143..622dc1994d1 100644
--- a/dlls/dinput/mouse.c
+++ b/dlls/dinput/mouse.c
@@ -122,12 +122,6 @@ HRESULT mouse_create_device( struct dinput *dinput, const GUID *guid, IDirectInp
     if (appkey) RegCloseKey(appkey);
     if (hkey) RegCloseKey(hkey);
 
-    if (FAILED(hr = dinput_device_init( &impl->base.IDirectInputDevice8W_iface )))
-    {
-        IDirectInputDevice_Release( &impl->base.IDirectInputDevice8W_iface );
-        return hr;
-    }
-
     if (dinput->dwVersion >= 0x0800)
     {
         impl->base.use_raw_input = TRUE;




More information about the wine-cvs mailing list