Mercurial > sdl-ios-xcode
view test/nds-test-progs/sprite2/source/common.h @ 5051:a69e36365766
Fixed bug #1027
Vittorio Giovara 2010-07-17 19:21:36 PDT
fix the double free error
in SDL_uikitview the variable 'textfield' is initialialized and set to
autorelease.
however in the dealloc method a second [release] is sent.
If the textfield has not been set to nil before (with a viewDidUnload for
example) this can lead to awful hard-to-find crashes when the SDL code
terminates.
the error message is
-[textfield release] message sent to deallocated instance 0x4e5fa90
the fix is simple, just release the object as soon as it is added to the
subview, see attached patch
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Wed, 19 Jan 2011 23:45:29 -0800 |
parents | 204be4fc2726 |
children |
line wrap: on
line source
/* A simple test program framework */ #include <SDL/SDL.h> #define VERBOSE_VIDEO 0x00000001 #define VERBOSE_MODES 0x00000002 #define VERBOSE_RENDER 0x00000004 #define VERBOSE_EVENT 0x00000008 #define VERBOSE_AUDIO 0x00000010 typedef struct { /* SDL init flags */ char **argv; Uint32 flags; Uint32 verbose; /* Video info */ const char *videodriver; int display; const char *window_title; Uint32 window_flags; int window_x; int window_y; int window_w; int window_h; int depth; int refresh_rate; int num_windows; SDL_WindowID *windows; /* Renderer info */ const char *renderdriver; Uint32 render_flags; SDL_bool skip_renderer; /* Audio info */ const char *audiodriver; SDL_AudioSpec audiospec; } CommonState; extern CommonState *CommonCreateState(char **argv, Uint32 flags); extern int CommonArg(CommonState * state, int index); extern const char *CommonUsage(CommonState * state); extern SDL_bool CommonInit(CommonState * state); extern void CommonEvent(CommonState * state, SDL_Event * event, int *done); extern void CommonQuit(CommonState * state);