Commit f90e3ebd authored by Jan Djärv's avatar Jan Djärv

Fix crash on OSX >= 10.7.

* nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:frame:
(initWithTitle:): Initialize frame to 0.
(fillWithWidgetValue:): Call fillWithWidgetValue:frame.
(fillWithWidgetValue:frame:): Renamed from
fillWithWidgetValue:setDelegate, call initWithTile:frame: if f.

* nsterm.h (EmacsMenu): fillWithWidgetValue:setDelegate renamed to
fillWithWidgetValue:frame:
parent 423d3b3f
2013-08-11 Jan Djärv <jan.h.d@swipnet.se>
* nsmenu.m (ns_update_menubar): Call fillWithWidgetValue:frame:
(initWithTitle:): Initialize frame to 0.
(fillWithWidgetValue:): Call fillWithWidgetValue:frame.
(fillWithWidgetValue:frame:): Renamed from
fillWithWidgetValue:setDelegate, call initWithTile:frame: if f.
* nsterm.h (EmacsMenu): fillWithWidgetValue:setDelegate renamed to
fillWithWidgetValue:frame:
* nsfns.m (Fns_convert_utf8_nfd_to_nfc): Allocate and release pool to
remove memory leak warnings.
......
......@@ -366,7 +366,7 @@
}
else
{
[menu fillWithWidgetValue: first_wv->contents setDelegate:YES];
[menu fillWithWidgetValue: first_wv->contents frame: f];
}
}
......@@ -527,6 +527,7 @@ @implementation EmacsMenu
/* override designated initializer */
- initWithTitle: (NSString *)title
{
frame = 0;
if ((self = [super initWithTitle: title]))
[self setAutoenablesItems: NO];
return self;
......@@ -725,10 +726,10 @@ -(void)clear
- (void)fillWithWidgetValue: (void *)wvptr
{
[self fillWithWidgetValue: wvptr setDelegate:NO];
[self fillWithWidgetValue: wvptr frame:nil];
}
- (void)fillWithWidgetValue: (void *)wvptr setDelegate: (BOOL)set
- (void)fillWithWidgetValue: (void *)wvptr frame: (struct frame *)f
{
widget_value *wv = (widget_value *)wvptr;
......@@ -743,11 +744,13 @@ - (void)fillWithWidgetValue: (void *)wvptr setDelegate: (BOOL)set
if (wv->contents)
{
EmacsMenu *submenu = [[EmacsMenu alloc] initWithTitle: [item title]];
EmacsMenu *submenu;
if (f)
submenu = [[EmacsMenu alloc] initWithTitle: [item title] frame:f];
else
submenu = [[EmacsMenu alloc] initWithTitle: [item title]];
#ifdef NS_IMPL_COCOA
if (set) [submenu setDelegate: submenu];
#endif
[self setSubmenu: submenu forItem: item];
[submenu fillWithWidgetValue: wv->contents];
[submenu release];
......
......@@ -196,7 +196,7 @@ typedef float EmacsCGFloat;
- (NSString *)parseKeyEquiv: (const char *)key;
- (NSMenuItem *)addItemWithWidgetValue: (void *)wvptr;
- (void)fillWithWidgetValue: (void *)wvptr;
- (void)fillWithWidgetValue: (void *)wvptr setDelegate: (BOOL)set;
- (void)fillWithWidgetValue: (void *)wvptr frame: (struct frame *)f;
- (EmacsMenu *)addSubmenuWithTitle: (const char *)title forFrame: (struct frame *)f;
- (void) clear;
- (Lisp_Object)runMenuAt: (NSPoint)p forFrame: (struct frame *)f
......
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