diff options
| author | Richard M. Stallman | 2002-03-14 09:13:28 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 2002-03-14 09:13:28 +0000 |
| commit | e7161ad9ffbeece2a11b57b96da62264561cfcd4 (patch) | |
| tree | d227572d8a3b9275491c7178e79a659e3a8bea06 /src | |
| parent | 7c3f9166ee1754619df09484a3d30dd0508b0370 (diff) | |
| download | emacs-e7161ad9ffbeece2a11b57b96da62264561cfcd4.tar.gz emacs-e7161ad9ffbeece2a11b57b96da62264561cfcd4.zip | |
(x_real_positions): Handle failure in XQueryTree.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xfns.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/xfns.c b/src/xfns.c index 8b7304025d7..23d85d10e24 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -1176,13 +1176,19 @@ x_real_positions (f, xptr, yptr) | |||
| 1176 | Window wm_window, rootw; | 1176 | Window wm_window, rootw; |
| 1177 | Window *tmp_children; | 1177 | Window *tmp_children; |
| 1178 | unsigned int tmp_nchildren; | 1178 | unsigned int tmp_nchildren; |
| 1179 | int success; | ||
| 1179 | 1180 | ||
| 1180 | XQueryTree (FRAME_X_DISPLAY (f), win, &rootw, | 1181 | success = XQueryTree (FRAME_X_DISPLAY (f), win, &rootw, |
| 1181 | &wm_window, &tmp_children, &tmp_nchildren); | 1182 | &wm_window, &tmp_children, &tmp_nchildren); |
| 1182 | XFree ((char *) tmp_children); | ||
| 1183 | 1183 | ||
| 1184 | had_errors = x_had_errors_p (FRAME_X_DISPLAY (f)); | 1184 | had_errors = x_had_errors_p (FRAME_X_DISPLAY (f)); |
| 1185 | 1185 | ||
| 1186 | /* Don't free tmp_children if XQueryTree failed. */ | ||
| 1187 | if (! success) | ||
| 1188 | break; | ||
| 1189 | |||
| 1190 | XFree ((char *) tmp_children); | ||
| 1191 | |||
| 1186 | if (wm_window == rootw || had_errors) | 1192 | if (wm_window == rootw || had_errors) |
| 1187 | break; | 1193 | break; |
| 1188 | 1194 | ||