From 7c3506eda86d7e6539cf15836c01d3d5321a9f0e Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 25 Jul 2015 19:33:51 +0300 Subject: [PATCH] Avoid crashes when w32 GUI functions are called in -batch * src/w32fns.c (Fx_frame_geometry, Fw32_frame_rect) (Fw32_frame_menu_bar_size, Fw32_send_sys_command): Don't call FRAME_W32_WINDOW for initial frame. (Bug#21132) --- src/w32fns.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/w32fns.c b/src/w32fns.c index 8f9c56c5420..bf81078d010 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -6935,7 +6935,8 @@ If optional parameter FRAME is not specified, use selected frame. */) CHECK_NUMBER (command); - PostMessage (FRAME_W32_WINDOW (f), WM_SYSCOMMAND, XINT (command), 0); + if (FRAME_W32_P (f)) + PostMessage (FRAME_W32_WINDOW (f), WM_SYSCOMMAND, XINT (command), 0); return Qnil; } @@ -7522,6 +7523,9 @@ If FRAME is omitted or nil, the selected frame is used. */) MENUBARINFO menu_bar; int width, height, single_height, wrapped_height; + if (FRAME_INITIAL_P (f)) + return Qnil; + block_input (); single_height = GetSystemMetrics (SM_CYMENU); @@ -7553,6 +7557,9 @@ title bar and decorations. */) struct frame *f = decode_live_frame (frame); RECT rect; + if (FRAME_INITIAL_P (f)) + return Qnil; + block_input (); if (!NILP (client)) @@ -7610,6 +7617,9 @@ elements (all size values are in pixels). int single_bar_height, wrapped_bar_height, menu_bar_height; Lisp_Object fullscreen = Fframe_parameter (frame, Qfullscreen); + if (FRAME_INITIAL_P (f)) + return Qnil; + block_input (); /* Outer frame rectangle, including outer borders and title bar. */ -- 2.11.4.GIT