Subject: Re: bug#13479: Cross Compiling for ARM

From: martin rudalics <[email-masked]>
Date: Sat, 19 Jan 2013 11:11:31 +0100

> I haven't investigated.  But because protecting those calls by if
> (initialized) and even moving the lisp->C binding for
> window_root_window_resize_vertically to after initialization didn't help, I
> suspect the issue might be deeper than just protecting C calls to lisp.  I
> really don't know how to follow up though.

If Lisp hasn't been called yet, the root window cannot have
been split yet.  So in the case at hand the following patch
sould work.  Can you please try it?

Thanks, martin

=== modified file 'src/window.c'
--- src/window.c	2013-01-11 23:08:55 +0000
+++ src/window.c	2013-01-19 09:54:07 +0000
@@ -4207,8 +4207,15 @@
 
   root = FRAME_ROOT_WINDOW (f);
   r = XWINDOW (root);
-  value = call2 (Qwindow_resize_root_window_vertically,
-		 root, make_number (- delta));
+  if (WINDOW_LIVE_P (root))
+    {
+      wset_new_total (r, make_number (XFASTINT (r->total_lines) - delta));
+      value = make_number (- delta);
+    }
+  else
+    value = call2 (Qwindow_resize_root_window_vertically,
+		   root, make_number (- delta));
+
   if (INTEGERP (value) && window_resize_check (r, 0))
     {
       block_input ();
@@ -4245,8 +4252,15 @@
     {
       root = FRAME_ROOT_WINDOW (f);
       r = XWINDOW (root);
-      value = call2 (Qwindow_resize_root_window_vertically,
-		     root, make_number (size - 1));
+      if (WINDOW_LIVE_P (root))
+	{
+	  wset_new_total (r, make_number (XFASTINT (r->total_lines) + size - 1));
+	  value = make_number (size - 1);
+	}
+      else
+	value = call2 (Qwindow_resize_root_window_vertically,
+		       root, make_number (size - 1));
+
       if (INTEGERP (value) && window_resize_check (r, 0))
 	{
 	  block_input ();