aboutsummaryrefslogtreecommitdiffstats
path: root/src/xselect.c
diff options
context:
space:
mode:
authorPo Lu2022-06-09 09:52:21 +0800
committerPo Lu2022-06-09 09:52:21 +0800
commitdcb45946eee85dd8217fdfc4b728db1e24b16ebe (patch)
tree8c0ccad8f79568b5f0f862313ba989d08ef9fcd6 /src/xselect.c
parentc754f277a67549bb8346c77a4962bcbf03590ece (diff)
downloademacs-dcb45946eee85dd8217fdfc4b728db1e24b16ebe.tar.gz
emacs-dcb45946eee85dd8217fdfc4b728db1e24b16ebe.zip
Make use of faster atom intern functions in xselect.c
* src/xselect.c (symbol_to_x_atom): (x_atom_to_symbol): Use x_get_atom_name and x_intern_cached_atom.
Diffstat (limited to 'src/xselect.c')
-rw-r--r--src/xselect.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/xselect.c b/src/xselect.c
index a234c7188f3..17fe7403b24 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -170,7 +170,7 @@ symbol_to_x_atom (struct x_display_info *dpyinfo, Lisp_Object sym)
170 170
171 TRACE1 (" XInternAtom %s", SSDATA (SYMBOL_NAME (sym))); 171 TRACE1 (" XInternAtom %s", SSDATA (SYMBOL_NAME (sym)));
172 block_input (); 172 block_input ();
173 val = XInternAtom (dpyinfo->display, SSDATA (SYMBOL_NAME (sym)), False); 173 val = x_intern_cached_atom (dpyinfo, SSDATA (SYMBOL_NAME (sym)), false);
174 unblock_input (); 174 unblock_input ();
175 return val; 175 return val;
176} 176}
@@ -233,18 +233,17 @@ x_atom_to_symbol (struct x_display_info *dpyinfo, Atom atom)
233 if (atom == dpyinfo->Xatom_XmTRANSFER_FAILURE) 233 if (atom == dpyinfo->Xatom_XmTRANSFER_FAILURE)
234 return QXmTRANSFER_FAILURE; 234 return QXmTRANSFER_FAILURE;
235 235
236 block_input ();
237 x_catch_errors (dpyinfo->display); 236 x_catch_errors (dpyinfo->display);
238 str = XGetAtomName (dpyinfo->display, atom); 237 str = x_get_atom_name (dpyinfo, atom, NULL);
239 x_uncatch_errors (); 238 x_uncatch_errors ();
240 unblock_input (); 239
240 TRACE0 ("XGetAtomName --> NULL");
241 if (!str)
242 return Qnil;
241 TRACE1 ("XGetAtomName --> %s", str); 243 TRACE1 ("XGetAtomName --> %s", str);
242 if (! str) return Qnil; 244
243 val = intern (str); 245 val = intern (str);
244 block_input (); 246 xfree (str);
245 /* This was allocated by Xlib, so use XFree. */
246 XFree (str);
247 unblock_input ();
248 return val; 247 return val;
249} 248}
250 249