mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-26 15:21:51 -08:00
Fix memory leaks
* macfont.m (macfont_draw): positions where not freed. * nsterm.h (EmacsApp): Always compile in shouldKeepRunning, isFirst on Cocoa. * nsterm.m (run): Always compile for Cocoa. Use runtime check to determine 10.9. Fixes: debbugs:17751
This commit is contained in:
parent
15684f524b
commit
b765f1fe83
4 changed files with 42 additions and 21 deletions
|
|
@ -1,3 +1,13 @@
|
|||
2014-06-11 Jan Djärv <jan.h.d@swipnet.se>
|
||||
|
||||
* nsterm.h (EmacsApp): Always compile in shouldKeepRunning, isFirst
|
||||
on Cocoa.
|
||||
|
||||
* nsterm.m (run): Always compile for Cocoa. Use runtime check to
|
||||
determine 10.9 (Bug#17751).
|
||||
|
||||
* macfont.m (macfont_draw): positions where not freed.
|
||||
|
||||
2014-06-10 Dmitry Antipov <dmantipov@yandex.ru>
|
||||
|
||||
* dispextern.h (PREPARE_FACE_FOR_DISPLAY): Remove as a duplicate of ...
|
||||
|
|
|
|||
|
|
@ -2810,6 +2810,7 @@ macfont_draw (struct glyph_string *s, int from, int to, int x, int y,
|
|||
|
||||
|
||||
xfree (glyphs);
|
||||
xfree (positions);
|
||||
CGContextRestoreGState (context);
|
||||
|
||||
unblock_input ();
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ typedef float EmacsCGFloat;
|
|||
/* We override sendEvent: as a means to stop/start the event loop */
|
||||
@interface EmacsApp : NSApplication
|
||||
{
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_9
|
||||
#ifdef NS_IMPL_COCOA
|
||||
BOOL shouldKeepRunning;
|
||||
BOOL isFirst;
|
||||
#endif
|
||||
|
|
|
|||
50
src/nsterm.m
50
src/nsterm.m
|
|
@ -4453,7 +4453,7 @@ ns_term_shutdown (int sig)
|
|||
{
|
||||
if (self = [super init])
|
||||
{
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_9
|
||||
#ifdef NS_IMPL_COCOA
|
||||
self->isFirst = YES;
|
||||
#endif
|
||||
#ifdef NS_IMPL_GNUSTEP
|
||||
|
|
@ -4464,30 +4464,40 @@ ns_term_shutdown (int sig)
|
|||
return self;
|
||||
}
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_9
|
||||
#ifdef NS_IMPL_COCOA
|
||||
- (void)run
|
||||
{
|
||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||
#ifndef NSAppKitVersionNumber10_8
|
||||
#define NSAppKitVersionNumber10_8 1187
|
||||
#endif
|
||||
|
||||
if (isFirst) [self finishLaunching];
|
||||
isFirst = NO;
|
||||
if (NSAppKitVersionNumber <= NSAppKitVersionNumber10_8)
|
||||
{
|
||||
[super run];
|
||||
return;
|
||||
}
|
||||
|
||||
shouldKeepRunning = YES;
|
||||
do
|
||||
{
|
||||
[pool release];
|
||||
pool = [[NSAutoreleasePool alloc] init];
|
||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
NSEvent *event =
|
||||
[self nextEventMatchingMask:NSAnyEventMask
|
||||
untilDate:[NSDate distantFuture]
|
||||
inMode:NSDefaultRunLoopMode
|
||||
dequeue:YES];
|
||||
[self sendEvent:event];
|
||||
[self updateWindows];
|
||||
if (isFirst) [self finishLaunching];
|
||||
isFirst = NO;
|
||||
|
||||
shouldKeepRunning = YES;
|
||||
do
|
||||
{
|
||||
[pool release];
|
||||
pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
NSEvent *event =
|
||||
[self nextEventMatchingMask:NSAnyEventMask
|
||||
untilDate:[NSDate distantFuture]
|
||||
inMode:NSDefaultRunLoopMode
|
||||
dequeue:YES];
|
||||
[self sendEvent:event];
|
||||
[self updateWindows];
|
||||
} while (shouldKeepRunning);
|
||||
|
||||
[pool release];
|
||||
|
||||
[pool release];
|
||||
}
|
||||
|
||||
- (void)stop: (id)sender
|
||||
|
|
@ -4497,7 +4507,7 @@ ns_term_shutdown (int sig)
|
|||
// The file dialog still leaks 7k - 10k on 10.9 though.
|
||||
[super stop:sender];
|
||||
}
|
||||
#endif
|
||||
#endif /* NS_IMPL_COCOA */
|
||||
|
||||
- (void)logNotification: (NSNotification *)notification
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue