I don't have a wset_new_total.  Is that a new function?  I'm using mostly stock 24.2.

    Ross


On Sat, Jan 19, 2013 at 5:11 AM, martin rudalics <rudalics@gmx.at> wrote:
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 ();