* src/nsmenu.m (pop_down_menu, ns_popup_dialog): Remove references to
autorelease pool and Popdown_data struct.
========================================================================== */
========================================================================== */
-struct Popdown_data
-{
- NSAutoreleasePool *pool;
- EmacsDialogPanel *dialog;
-};
-
static void
pop_down_menu (void *arg)
{
static void
pop_down_menu (void *arg)
{
- struct Popdown_data *unwind_data = arg;
+ EmacsDialogPanel *panel = arg;
if (popup_activated_flag)
{
if (popup_activated_flag)
{
- EmacsDialogPanel *panel = unwind_data->dialog;
popup_activated_flag = 0;
[panel close];
popup_activated_flag = 0;
[panel close];
- [unwind_data->pool release];
[[FRAME_NS_VIEW (SELECTED_FRAME ()) window] makeKeyWindow];
[[FRAME_NS_VIEW (SELECTED_FRAME ()) window] makeKeyWindow];
-
- xfree (unwind_data);
- unblock_input ();
Lisp_Object tem, title;
NSPoint p;
BOOL isQ;
Lisp_Object tem, title;
NSPoint p;
BOOL isQ;
- NSAutoreleasePool *pool;
NSTRACE ("ns_popup_dialog");
NSTRACE ("ns_popup_dialog");
contents = list2 (title, Fcons (build_string ("Ok"), Qt));
block_input ();
contents = list2 (title, Fcons (build_string ("Ok"), Qt));
block_input ();
- pool = [[NSAutoreleasePool alloc] init];
dialog = [[EmacsDialogPanel alloc] initFromContents: contents
isQuestion: isQ];
{
ptrdiff_t specpdl_count = SPECPDL_INDEX ();
dialog = [[EmacsDialogPanel alloc] initFromContents: contents
isQuestion: isQ];
{
ptrdiff_t specpdl_count = SPECPDL_INDEX ();
- struct Popdown_data *unwind_data = xmalloc (sizeof (*unwind_data));
-
- unwind_data->pool = pool;
- unwind_data->dialog = dialog;
- record_unwind_protect_ptr (pop_down_menu, unwind_data);
+ record_unwind_protect_ptr (pop_down_menu, dialog);
popup_activated_flag = 1;
tem = [dialog runDialogAt: p];
unbind_to (specpdl_count, Qnil); /* calls pop_down_menu */
popup_activated_flag = 1;
tem = [dialog runDialogAt: p];
unbind_to (specpdl_count, Qnil); /* calls pop_down_menu */