Turn release messages sent to autorelease pools into drain messages. No

functionality change in non-GC mode, in GC mode it invokes a quick GC pass to
try to delete the short-lived objects.

Also deleted some [pool release] lines just before exit() or return-from-main
statements.  These cause objects to be swapped in and destructors to be run to
no benefit (the OS will reclaim this memory without requiring stuff to be
swapped in when the process exits).



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33146 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
David Chisnall 2011-05-27 12:42:37 +00:00
parent 4b080ec8b8
commit b4e3915c33
15 changed files with 23 additions and 28 deletions

View file

@ -90,7 +90,7 @@ NSApplicationMain(int argc, const char **argv)
DESTROY(NSApp);
RELEASE(pool);
[pool drain];
return 0;
}

View file

@ -1156,7 +1156,7 @@ nsanimation_progressMarkSorter(NSAnimationProgress first, NSAnimationProgress se
[self _gs_startAnimationInOwnLoop];
NSDebugMLLog(@"NSAnimationThread",
@"End of %@", [NSThread currentThread]);
RELEASE(pool);
[pool drain];
_isThreaded = NO;
}
@ -1181,11 +1181,11 @@ nsanimation_progressMarkSorter(NSAnimationProgress first, NSAnimationProgress se
d = [loop limitDateForMode: NSAnimationBlockingRunLoopMode];
if (d == nil)
{
RELEASE(pool);
[pool drain];
break; // No inputs and no timers.
}
[NSThread sleepUntilDate: d];
RELEASE(pool);
[pool drain];
}
}
}

View file

@ -770,7 +770,7 @@ static NSSize scaledIconSizeForSize(NSSize imageSize)
/* Cache the NSAutoreleasePool class */
arpClass = [NSAutoreleasePool class];
nc = [NSNotificationCenter defaultCenter];
RELEASE(pool);
[pool drain];
}
}
@ -780,7 +780,7 @@ static NSSize scaledIconSizeForSize(NSSize imageSize)
CREATE_AUTORELEASE_POOL(pool);
[inv invoke];
RELEASE(pool);
[pool drain];
}
/**
@ -915,7 +915,7 @@ static NSSize scaledIconSizeForSize(NSSize imageSize)
/* We are the end of responder chain. */
[self setNextResponder: nil];
RELEASE(_app_init_pool);
[_app_init_pool drain];
}
@ -1919,7 +1919,7 @@ See Also: -runModalForWindow:
[self stopModal];
}
}
RELEASE (pool);
[pool drain];
}
NSAssert(_session == theSession, @"Session was changed while running");

View file

@ -1595,7 +1595,7 @@ static NSMutableDictionary *cachedCSets = nil;
}
}
RELEASE(pool);
[pool drain];
}
- (void) fixParagraphStyleAttributeInRange: (NSRange)range

View file

@ -2438,7 +2438,7 @@ _set_bit_value(unsigned char *base, long msb_off, int bit_width,
//[new setColor: c atX: i y: j];
setC(new, setCSel, c, i, j);
}
RELEASE(pool);
[pool drain];
}
}

View file

@ -441,7 +441,7 @@ static GSComboWindow *gsWindow = nil;
_stopped = NO;
RELEASE(pool);
[pool drain];
}
// onWindow notifications

View file

@ -148,7 +148,7 @@
self = [self initSymbolicLinkWithDestination:
[fm pathContentOfSymbolicLinkAtPath: path]];
}
RELEASE(arp);
[arp drain];
return self;
}

View file

@ -464,7 +464,7 @@ static NSInputManager *currentInputManager = nil;
}
}
RELEASE (pool);
[pool drain];
return self;
}

View file

@ -855,7 +855,7 @@ static NSMutableDictionary* printerCache;
*/
// Release the local autoreleasePool
RELEASE(subpool);
[subpool drain];
//Sometimes it's good to see the tables...

View file

@ -114,7 +114,7 @@
[self animate: self];
[NSThread sleepForTimeInterval: _animationDelay];
RELEASE(pool);
[pool drain];
}
}

View file

@ -2699,7 +2699,7 @@ resetCursorRectsForView(NSView *theView)
GSRemoveIcon(mini);
}
RELEASE(pool);
[pool drain];
RELEASE(self);
}
}

View file

@ -1188,7 +1188,7 @@
[self _setAttributesOfLastRun: attributes];
RELEASE(pool);
[pool drain];
}
[self _setAttributesOfLastRun: nil]; // cleanup, should be unneccessary

View file

@ -533,6 +533,6 @@ int main(int argc, char** argv)
}
RELEASE(aSpellChecker);
RELEASE(aServer);
RELEASE(_pool);
[_pool drain];
return 0;
}

View file

@ -120,7 +120,6 @@ main(int argc, char** argv, char **env_c)
if (proc == nil)
{
NSLog(@"unable to get process information!");
[pool release];
exit(EXIT_SUCCESS);
}
@ -204,7 +203,7 @@ main(int argc, char** argv, char **env_c)
{
if (verbose > 0)
NSLog(@"couldn't create %@", usrRoot);
[pool release];
[pool drain];
exit(EXIT_FAILURE);
}
@ -264,7 +263,6 @@ main(int argc, char** argv, char **env_c)
{
if (verbose > 0)
NSLog(@"couldn't write %@", str);
[pool release];
exit(EXIT_FAILURE);
}
}
@ -289,12 +287,10 @@ main(int argc, char** argv, char **env_c)
{
if (verbose > 0)
NSLog(@"couldn't write %@", str);
[pool release];
exit(EXIT_FAILURE);
}
}
[pool release];
exit(EXIT_SUCCESS);
}
@ -763,7 +759,7 @@ scanApplications(NSMutableDictionary *services, NSString *path)
}
}
}
[arp release];
[arp drain];
}
static void
@ -815,7 +811,7 @@ scanDynamic(NSMutableDictionary *services, NSString *path)
NSLog(@"bad app info - %@", infPath);
}
}
[arp release];
[arp drain];
}
static void
@ -890,7 +886,7 @@ scanServices(NSMutableDictionary *services, NSString *path)
}
}
}
[arp release];
[arp drain];
}
static NSMutableArray*

View file

@ -54,7 +54,6 @@ main(int argc, char** argv, char **env)
if (proc == nil)
{
NSLog(@"unable to get process information!\n");
[pool release];
exit(EXIT_SUCCESS);
}
@ -93,7 +92,7 @@ main(int argc, char** argv, char **env)
}
NSLog(@"Nothing to do.\n");
RELEASE(pool);
[pool drain];
return(1);
}