Mercurial > sdl-ios-xcode
changeset 2561:3696b9ce8a37 gsoc2008_force_feedback
Correctness patch, it's up to the SDL_haptic.c to clean up effects, not SDL_syshaptic.c.
author | Edgar Simo <bobbens@gmail.com> |
---|---|
date | Thu, 31 Jul 2008 09:45:27 +0000 |
parents | 2274406ba792 |
children | c284ce0cd8e0 |
files | src/haptic/SDL_haptic.c src/haptic/darwin/SDL_syshaptic.c src/haptic/linux/SDL_syshaptic.c src/haptic/win32/SDL_syshaptic.c |
diffstat | 4 files changed, 12 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/src/haptic/SDL_haptic.c Thu Jul 31 09:02:43 2008 +0000 +++ b/src/haptic/SDL_haptic.c Thu Jul 31 09:45:27 2008 +0000 @@ -322,6 +322,7 @@ /* Remove from the list */ for (i = 0; SDL_haptics[i]; ++i) { if (haptic == SDL_haptics[i]) { + SDL_haptics[i] = NULL; SDL_memcpy(&SDL_haptics[i], &SDL_haptics[i + 1], (SDL_numhaptics - i) * sizeof(haptic)); break;
--- a/src/haptic/darwin/SDL_syshaptic.c Thu Jul 31 09:02:43 2008 +0000 +++ b/src/haptic/darwin/SDL_syshaptic.c Thu Jul 31 09:45:27 2008 +0000 @@ -470,19 +470,11 @@ void SDL_SYS_HapticClose(SDL_Haptic * haptic) { - int i; - if (haptic->hwdata) { - /* Free the effects. */ - for (i=0; i<haptic->neffects; i++) { - if (haptic->effects[i].hweffect != NULL) { - SDL_SYS_HapticFreeFFEFFECT(&haptic->effects[i].hweffect->effect, - haptic->effects[i].effect.type); - SDL_free(haptic->effects[i].hweffect); - } - } + /* Free Effects. */ SDL_free(haptic->effects); + haptic->effects = NULL; haptic->neffects = 0; /* Clean up */
--- a/src/haptic/linux/SDL_syshaptic.c Thu Jul 31 09:02:43 2008 +0000 +++ b/src/haptic/linux/SDL_syshaptic.c Thu Jul 31 09:45:27 2008 +0000 @@ -423,12 +423,17 @@ { if (haptic->hwdata) { + /* Free effects. */ + SDL_free(haptic->effects); + haptic->effects = NULL; + haptic->neffects = 0; + /* Clean up */ close(haptic->hwdata->fd); /* Free */ - SDL_free(haptic->hwdata); - SDL_free(haptic->effects); + SDL_free(haptic->hwdata); + haptic->hwdata = NULL; } /* Clear the rest. */
--- a/src/haptic/win32/SDL_syshaptic.c Thu Jul 31 09:02:43 2008 +0000 +++ b/src/haptic/win32/SDL_syshaptic.c Thu Jul 31 09:45:27 2008 +0000 @@ -361,9 +361,6 @@ return 0; /* Error handling */ -open_err: - IDirectInputDevice_Release(device); - goto creat_err; acquire_err: IDirectInputDevice2_Unacquire(haptic->hwdata->device); query_err: @@ -435,19 +432,11 @@ void SDL_SYS_HapticClose(SDL_Haptic * haptic) { - int i; - if (haptic->hwdata) { - /* Free the effects. */ - for (i=0; i<haptic->neffects; i++) { - if (haptic->effects[i].hweffect != NULL) { - SDL_SYS_HapticFreeFFEFFECT( &haptic->effects[i].hweffect->effect, - haptic->effects[i].effect.type ); - SDL_free(haptic->effects[i].hweffect); - } - } + /* Free effects. */ SDL_free(haptic->effects); + haptic->effects = NULL; haptic->neffects = 0; /* Clean up */