summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog10
-rw-r--r--src/macfont.m1
-rw-r--r--src/nsterm.h2
-rw-r--r--src/nsterm.m50
4 files changed, 42 insertions, 21 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 5fec848154b..6733cf176ca 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -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 ...
diff --git a/src/macfont.m b/src/macfont.m
index d34e0332236..9b3cb2c29f6 100644
--- a/src/macfont.m
+++ b/src/macfont.m
@@ -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 ();
diff --git a/src/nsterm.h b/src/nsterm.h
index d2c42c553d9..e77aca3d50d 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -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
diff --git a/src/nsterm.m b/src/nsterm.m
index 6b617be4c0d..c6450804f57 100644
--- a/src/nsterm.m
+++ b/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];
- } while (shouldKeepRunning);
+ if (isFirst) [self finishLaunching];
+ isFirst = NO;
+
+ shouldKeepRunning = YES;
+ do
+ {
+ [pool release];
+ pool = [[NSAutoreleasePool alloc] init];
- [pool release];
+ NSEvent *event =
+ [self nextEventMatchingMask:NSAnyEventMask
+ untilDate:[NSDate distantFuture]
+ inMode:NSDefaultRunLoopMode
+ dequeue:YES];
+ [self sendEvent:event];
+ [self updateWindows];
+ } while (shouldKeepRunning);
+
+ [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
{