diff src/xselect.c @ 50473:d89a8e99c73b

(x_handle_selection_request): Move UNGCPRO to very end.
author Richard M. Stallman <rms@gnu.org>
date Sun, 06 Apr 2003 20:35:06 +0000
parents b8c1a5c8f9c0
children 8e404f2a6715
line wrap: on
line diff
--- a/src/xselect.c	Sun Apr 06 20:33:59 2003 +0000
+++ b/src/xselect.c	Sun Apr 06 20:35:06 2003 +0000
@@ -425,6 +425,9 @@
 
       CHECK_SYMBOL (target_type);
       handler_fn = Fcdr (Fassq (target_type, Vselection_converter_alist));
+      /* gcpro is not needed here since nothing but HANDLER_FN
+	 is live, and that ought to be a symbol.  */
+
       if (!NILP (handler_fn))
 	value = call3 (handler_fn,
 		       selection_symbol, (local_request ? Qnil : target_type),
@@ -837,8 +840,6 @@
 
  DONE:
 
-  UNGCPRO;
-
   /* Let random lisp code notice that the selection has been asked for.  */
   {
     Lisp_Object rest;
@@ -847,6 +848,8 @@
       for (; CONSP (rest); rest = Fcdr (rest))
 	call3 (Fcar (rest), selection_symbol, target_symbol, successful_p);
   }
+
+  UNGCPRO;
 }
 
 /* Handle a SelectionClear event EVENT, which indicates that some