Plug NS memory leaks (bug#45502)

* src/nsmenu.m ([EmacsMenu addItemWithWidgetValue:attributes:]):
Mark allocated and owned objects for autorelease.
This commit is contained in:
Mattias Engdegård 2020-12-30 11:33:42 +01:00
parent cd4a51695f
commit d0a2543986

View file

@ -481,7 +481,7 @@ - (NSMenuItem *)addItemWithWidgetValue: (void *)wvptr
if (title == nil)
title = @"< ? >"; /* (get out in the open so we know about it) */
item = [[NSMenuItem alloc] init];
item = [[[NSMenuItem alloc] init] autorelease];
if (wv->key)
{
NSString *key = [NSString stringWithUTF8String: skipspc (wv->key)];
@ -495,9 +495,10 @@ - (NSMenuItem *)addItemWithWidgetValue: (void *)wvptr
#endif
}
NSAttributedString *atitle = [[NSAttributedString alloc]
NSAttributedString *atitle = [[[NSAttributedString alloc]
initWithString: title
attributes: attributes];
attributes: attributes]
autorelease];
[item setAction: @selector (menuDown:)];
[item setAttributedTitle: atitle];
[item setEnabled: wv->enabled];
@ -542,7 +543,7 @@ - (void)fillWithWidgetValue: (void *)wvptr
NSDictionary *attributes = nil;
#ifdef NS_IMPL_COCOA
/* Cocoa doesn't allow multi-key chording in its menu display, so
/* Cocoa doesn't allow multi-key sequences in its menu display, so
work around it by using tabs to split the title into two
columns. */
NSDictionary *font_attribs = @{NSFontAttributeName: menuFont};
@ -570,8 +571,8 @@ - (void)fillWithWidgetValue: (void *)wvptr
/* Set a right-aligned tab stop at the maximum width, so that the
key will appear immediately to the left of it. */
NSTextTab *tab =
[[[NSTextTab alloc] initWithTextAlignment: NSTextAlignmentRight
location: maxWidth
[[[NSTextTab alloc] initWithTextAlignment: NSTextAlignmentLeft
location: maxWidth - maxKeyWidth
options: @{}] autorelease];
NSMutableParagraphStyle *pstyle = [[[NSMutableParagraphStyle alloc] init]
autorelease];