aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2022-07-05 11:03:11 +0800
committerPo Lu2022-07-05 11:05:21 +0800
commitb4d766fba5a9ccfe7262af9032e9e2b84a3370c4 (patch)
tree6091f31366407a2c2b788fb94432d353b845cc85 /src
parent3534426b28b9118e32cabe16810f16ef915f0dbd (diff)
downloademacs-b4d766fba5a9ccfe7262af9032e9e2b84a3370c4.tar.gz
emacs-b4d766fba5a9ccfe7262af9032e9e2b84a3370c4.zip
Don't take XCB socket every time we want the no of the next request
* src/xterm.c (x_ignore_errors_for_next_request, x_uncatch_errors) (x_check_errors, x_had_errors_p): Don't call XNextRequest redundantly. Use NextRequest if it was immediately preceded by XNextRequest, which updates dpy->request.
Diffstat (limited to 'src')
-rw-r--r--src/xterm.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 7843a46ab25..771db4a05c9 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -23148,6 +23148,7 @@ static void
23148x_ignore_errors_for_next_request (struct x_display_info *dpyinfo) 23148x_ignore_errors_for_next_request (struct x_display_info *dpyinfo)
23149{ 23149{
23150 struct x_failable_request *request, *max; 23150 struct x_failable_request *request, *max;
23151 unsigned long next_request;
23151#ifdef HAVE_GTK3 23152#ifdef HAVE_GTK3
23152 GdkDisplay *gdpy; 23153 GdkDisplay *gdpy;
23153 23154
@@ -23171,13 +23172,14 @@ x_ignore_errors_for_next_request (struct x_display_info *dpyinfo)
23171 23172
23172 request = dpyinfo->next_failable_request; 23173 request = dpyinfo->next_failable_request;
23173 max = dpyinfo->failable_requests + N_FAILABLE_REQUESTS; 23174 max = dpyinfo->failable_requests + N_FAILABLE_REQUESTS;
23175 next_request = XNextRequest (dpyinfo->display);
23174 23176
23175 if (request >= max) 23177 if (request >= max)
23176 { 23178 {
23177 /* There is no point in making this extra sync if all requests 23179 /* There is no point in making this extra sync if all requests
23178 are known to have been fully processed. */ 23180 are known to have been fully processed. */
23179 if ((LastKnownRequestProcessed (dpyinfo->display) 23181 if ((LastKnownRequestProcessed (dpyinfo->display)
23180 != XNextRequest (dpyinfo->display) - 1)) 23182 != next_request - 1))
23181 XSync (dpyinfo->display, False); 23183 XSync (dpyinfo->display, False);
23182 23184
23183 x_clean_failable_requests (dpyinfo); 23185 x_clean_failable_requests (dpyinfo);
@@ -23189,7 +23191,7 @@ x_ignore_errors_for_next_request (struct x_display_info *dpyinfo)
23189 function. */ 23191 function. */
23190 emacs_abort (); 23192 emacs_abort ();
23191 23193
23192 request->start = XNextRequest (dpyinfo->display); 23194 request->start = next_request;
23193 request->end = 0; 23195 request->end = 0;
23194 23196
23195 dpyinfo->next_failable_request++; 23197 dpyinfo->next_failable_request++;
@@ -23271,7 +23273,7 @@ x_uncatch_errors (void)
23271 != XNextRequest (x_error_message->dpy) - 1) 23273 != XNextRequest (x_error_message->dpy) - 1)
23272 /* Likewise if no request was made since the trap was 23274 /* Likewise if no request was made since the trap was
23273 installed. */ 23275 installed. */
23274 && (XNextRequest (x_error_message->dpy) 23276 && (NextRequest (x_error_message->dpy)
23275 > x_error_message->first_request)) 23277 > x_error_message->first_request))
23276 { 23278 {
23277 XSync (x_error_message->dpy, False); 23279 XSync (x_error_message->dpy, False);
@@ -23306,7 +23308,7 @@ x_check_errors (Display *dpy, const char *format)
23306 are known to have been fully processed. */ 23308 are known to have been fully processed. */
23307 if ((LastKnownRequestProcessed (dpy) 23309 if ((LastKnownRequestProcessed (dpy)
23308 != XNextRequest (dpy) - 1) 23310 != XNextRequest (dpy) - 1)
23309 && (XNextRequest (dpy) 23311 && (NextRequest (dpy)
23310 > x_error_message->first_request)) 23312 > x_error_message->first_request))
23311 XSync (dpy, False); 23313 XSync (dpy, False);
23312 23314
@@ -23341,7 +23343,7 @@ x_had_errors_p (Display *dpy)
23341 /* Make sure to catch any errors incurred so far. */ 23343 /* Make sure to catch any errors incurred so far. */
23342 if ((LastKnownRequestProcessed (dpy) 23344 if ((LastKnownRequestProcessed (dpy)
23343 != XNextRequest (dpy) - 1) 23345 != XNextRequest (dpy) - 1)
23344 && (XNextRequest (dpy) 23346 && (NextRequest (dpy)
23345 > x_error_message->first_request)) 23347 > x_error_message->first_request))
23346 XSync (dpy, False); 23348 XSync (dpy, False);
23347 23349