Mercurial > sdl-ios-xcode
comparison src/haptic/win32/SDL_syshaptic.c @ 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 | f010e1d4e431 |
children | 94ff09afa478 |
comparison
equal
deleted
inserted
replaced
2560:2274406ba792 | 2561:3696b9ce8a37 |
---|---|
359 sizeof(struct haptic_effect) * haptic->neffects); | 359 sizeof(struct haptic_effect) * haptic->neffects); |
360 | 360 |
361 return 0; | 361 return 0; |
362 | 362 |
363 /* Error handling */ | 363 /* Error handling */ |
364 open_err: | |
365 IDirectInputDevice_Release(device); | |
366 goto creat_err; | |
367 acquire_err: | 364 acquire_err: |
368 IDirectInputDevice2_Unacquire(haptic->hwdata->device); | 365 IDirectInputDevice2_Unacquire(haptic->hwdata->device); |
369 query_err: | 366 query_err: |
370 IDirectInputDevice2_Release(haptic->hwdata->device); | 367 IDirectInputDevice2_Release(haptic->hwdata->device); |
371 creat_err: | 368 creat_err: |
433 * Closes the haptic device. | 430 * Closes the haptic device. |
434 */ | 431 */ |
435 void | 432 void |
436 SDL_SYS_HapticClose(SDL_Haptic * haptic) | 433 SDL_SYS_HapticClose(SDL_Haptic * haptic) |
437 { | 434 { |
438 int i; | |
439 | |
440 if (haptic->hwdata) { | 435 if (haptic->hwdata) { |
441 | 436 |
442 /* Free the effects. */ | 437 /* Free effects. */ |
443 for (i=0; i<haptic->neffects; i++) { | |
444 if (haptic->effects[i].hweffect != NULL) { | |
445 SDL_SYS_HapticFreeFFEFFECT( &haptic->effects[i].hweffect->effect, | |
446 haptic->effects[i].effect.type ); | |
447 SDL_free(haptic->effects[i].hweffect); | |
448 } | |
449 } | |
450 SDL_free(haptic->effects); | 438 SDL_free(haptic->effects); |
439 haptic->effects = NULL; | |
451 haptic->neffects = 0; | 440 haptic->neffects = 0; |
452 | 441 |
453 /* Clean up */ | 442 /* Clean up */ |
454 IDirectInputDevice2_Unacquire(haptic->hwdata->device); | 443 IDirectInputDevice2_Unacquire(haptic->hwdata->device); |
455 IDirectInputDevice2_Release(haptic->hwdata->device); | 444 IDirectInputDevice2_Release(haptic->hwdata->device); |