From: Richard M. Stallman Date: Thu, 14 Mar 2002 09:13:28 +0000 (+0000) Subject: (x_real_positions): Handle failure in XQueryTree. X-Git-Tag: ttn-vms-21-2-B4~16167 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e7161ad9ffbeece2a11b57b96da62264561cfcd4;p=emacs.git (x_real_positions): Handle failure in XQueryTree. --- 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) Window wm_window, rootw; Window *tmp_children; unsigned int tmp_nchildren; + int success; - XQueryTree (FRAME_X_DISPLAY (f), win, &rootw, - &wm_window, &tmp_children, &tmp_nchildren); - XFree ((char *) tmp_children); + success = XQueryTree (FRAME_X_DISPLAY (f), win, &rootw, + &wm_window, &tmp_children, &tmp_nchildren); had_errors = x_had_errors_p (FRAME_X_DISPLAY (f)); + /* Don't free tmp_children if XQueryTree failed. */ + if (! success) + break; + + XFree ((char *) tmp_children); + if (wm_window == rootw || had_errors) break;