Revert "wgi: refcount the delegate objects" This reverts commit ff233fe3060e51706937a7b366438403bce774a4. This doesn't compile cleanly with Visual Studio and I don't want to introduce any subtle issues because we're passing the wrong types of pointers to WGI functions.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
diff --git a/src/joystick/windows/SDL_windows_gaming_input.c b/src/joystick/windows/SDL_windows_gaming_input.c
index acb7ae7..a252614 100644
--- a/src/joystick/windows/SDL_windows_gaming_input.c
+++ b/src/joystick/windows/SDL_windows_gaming_input.c
@@ -22,8 +22,6 @@
#ifdef SDL_JOYSTICK_WGI
-#include "SDL_assert.h"
-#include "SDL_atomic.h"
#include "SDL_endian.h"
#include "SDL_events.h"
#include "../SDL_sysjoystick.h"
@@ -209,11 +207,6 @@ SDL_IsXInputDevice(Uint16 vendor, Uint16 product)
return SDL_FALSE;
}
-typedef struct RawGameControllerDelegate {
- __FIEventHandler_1_Windows__CGaming__CInput__CRawGameController *vtbl;
- SDL_atomic_t refcount;
-} RawGameControllerDelegate;
-
static HRESULT STDMETHODCALLTYPE IEventHandler_CRawGameControllerVtbl_QueryInterface(__FIEventHandler_1_Windows__CGaming__CInput__CRawGameController * This, REFIID riid, void **ppvObject)
{
if (!ppvObject) {
@@ -223,10 +216,9 @@ static HRESULT STDMETHODCALLTYPE IEventHandler_CRawGameControllerVtbl_QueryInter
*ppvObject = NULL;
if (WIN_IsEqualIID(riid, &IID_IUnknown) || WIN_IsEqualIID(riid, &IID_IAgileObject) || WIN_IsEqualIID(riid, &IID_IEventHandler_RawGameController)) {
*ppvObject = This;
- __x_ABI_CWindows_CGaming_CInput_CIRawGameControllerStatics_AddRef(This);
return S_OK;
} else if (WIN_IsEqualIID(riid, &IID_IMarshal)) {
- /* This seems complicated. Let's hope it doesn't happen. */
+ // This seems complicated. Let's hope it doesn't happen.
return E_OUTOFMEMORY;
} else {
return E_NOINTERFACE;
@@ -235,17 +227,12 @@ static HRESULT STDMETHODCALLTYPE IEventHandler_CRawGameControllerVtbl_QueryInter
static ULONG STDMETHODCALLTYPE IEventHandler_CRawGameControllerVtbl_AddRef(__FIEventHandler_1_Windows__CGaming__CInput__CRawGameController * This)
{
- RawGameControllerDelegate *self = (RawGameControllerDelegate *)This;
- return SDL_AtomicAdd(&self->refcount, 1) + 1;
+ return 1;
}
static ULONG STDMETHODCALLTYPE IEventHandler_CRawGameControllerVtbl_Release(__FIEventHandler_1_Windows__CGaming__CInput__CRawGameController * This)
{
- RawGameControllerDelegate *self = (RawGameControllerDelegate *)This;
- int rc = SDL_AtomicAdd(&self->refcount, -1) - 1;
- /* Should never free the static delegate objects */
- SDL_assert(rc > 0);
- return rc;
+ return 1;
}
static HRESULT STDMETHODCALLTYPE IEventHandler_CRawGameControllerVtbl_InvokeAdded(__FIEventHandler_1_Windows__CGaming__CInput__CRawGameController * This, IInspectable *sender, __x_ABI_CWindows_CGaming_CInput_CIRawGameController *e)
@@ -435,9 +422,8 @@ static __FIEventHandler_1_Windows__CGaming__CInput__CRawGameControllerVtbl contr
IEventHandler_CRawGameControllerVtbl_Release,
IEventHandler_CRawGameControllerVtbl_InvokeAdded
};
-static RawGameControllerDelegate controller_added = {
- { &controller_added_vtbl },
- { 1 }
+static __FIEventHandler_1_Windows__CGaming__CInput__CRawGameController controller_added = {
+ &controller_added_vtbl
};
static __FIEventHandler_1_Windows__CGaming__CInput__CRawGameControllerVtbl controller_removed_vtbl = {
@@ -446,9 +432,8 @@ static __FIEventHandler_1_Windows__CGaming__CInput__CRawGameControllerVtbl contr
IEventHandler_CRawGameControllerVtbl_Release,
IEventHandler_CRawGameControllerVtbl_InvokeRemoved
};
-static RawGameControllerDelegate controller_removed = {
- { &controller_removed_vtbl },
- { 1 }
+static __FIEventHandler_1_Windows__CGaming__CInput__CRawGameController controller_removed = {
+ &controller_removed_vtbl
};
static int