Commit 7a1c6519 authored by Sam Lantinga's avatar Sam Lantinga

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
parent 6642f38c
......@@ -35,9 +35,6 @@
@implementation SDL_uikitview
- (void)dealloc {
#if SDL_IPHONE_KEYBOARD
[textField release];
#endif
[super dealloc];
}
......@@ -220,7 +217,7 @@
/* Set ourselves up as a UITextFieldDelegate */
- (void)initializeKeyboard {
textField = [[[UITextField alloc] initWithFrame: CGRectZero] autorelease];
textField = [[UITextField alloc] initWithFrame: CGRectZero];
textField.delegate = self;
/* placeholder so there is something to delete! */
textField.text = @" ";
......@@ -238,6 +235,7 @@
keyboardVisible = NO;
/* add the UITextField (hidden) to our view */
[self addSubview: textField];
[textField release];
}
/* reveal onscreen virtual keyboard */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment