emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 02ca5db: Remove separate pool for popup dialogs (bu


From: Alan Third
Subject: [Emacs-diffs] master 02ca5db: Remove separate pool for popup dialogs (bug#23856)
Date: Sun, 17 Jul 2016 21:19:33 +0000 (UTC)

branch: master
commit 02ca5db040b57ca4a36c317fcb3fb56f43ab371e
Author: Alan Third <address@hidden>
Commit: Alan Third <address@hidden>

    Remove separate pool for popup dialogs (bug#23856)
    
    * src/nsmenu.m (pop_down_menu, ns_popup_dialog): Remove references to
    autorelease pool and Popdown_data struct.
---
 src/nsmenu.m |   24 ++++--------------------
 1 file changed, 4 insertions(+), 20 deletions(-)

diff --git a/src/nsmenu.m b/src/nsmenu.m
index 10dfe8a..83ded6d 100644
--- a/src/nsmenu.m
+++ b/src/nsmenu.m
@@ -1420,29 +1420,19 @@ update_frame_tool_bar (struct frame *f)
 
    ========================================================================== 
*/
 
-struct Popdown_data
-{
-  NSAutoreleasePool *pool;
-  EmacsDialogPanel *dialog;
-};
-
 static void
 pop_down_menu (void *arg)
 {
-  struct Popdown_data *unwind_data = arg;
+  EmacsDialogPanel *panel = arg;
 
-  block_input ();
   if (popup_activated_flag)
     {
-      EmacsDialogPanel *panel = unwind_data->dialog;
+      block_input ();
       popup_activated_flag = 0;
       [panel close];
-      [unwind_data->pool release];
       [[FRAME_NS_VIEW (SELECTED_FRAME ()) window] makeKeyWindow];
+      unblock_input ();
     }
-
-  xfree (unwind_data);
-  unblock_input ();
 }
 
 
@@ -1453,7 +1443,6 @@ ns_popup_dialog (struct frame *f, Lisp_Object header, 
Lisp_Object contents)
   Lisp_Object tem, title;
   NSPoint p;
   BOOL isQ;
-  NSAutoreleasePool *pool;
 
   NSTRACE ("ns_popup_dialog");
 
@@ -1473,18 +1462,13 @@ ns_popup_dialog (struct frame *f, Lisp_Object header, 
Lisp_Object contents)
     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 ();
-    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 */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]