diff options
| author | Po Lu | 2022-07-05 11:03:11 +0800 |
|---|---|---|
| committer | Po Lu | 2022-07-05 11:05:21 +0800 |
| commit | b4d766fba5a9ccfe7262af9032e9e2b84a3370c4 (patch) | |
| tree | 6091f31366407a2c2b788fb94432d353b845cc85 /src | |
| parent | 3534426b28b9118e32cabe16810f16ef915f0dbd (diff) | |
| download | emacs-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.c | 12 |
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 | |||
| 23148 | x_ignore_errors_for_next_request (struct x_display_info *dpyinfo) | 23148 | x_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 | ||